新手天翼
#include<iostream> #include<algorithm> using namespace std; bool cmp(int a,int b){ return a>b; } int main(){ int n,a[101000],s,x; cin>>n>>s>>x; for(int i=0;i<=n-1;i++){ cin>>a[i]; } sort(a+1,a+n+1,cmp); for(int i=s;i<=x;i++){ cout<<a[i]<<" "; } }
高子健在2020-03-16 15:02:24追加了内容
#include<iostream>
using namespace std;
int a[10010];
int main(){
int n,t,m;
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>t;
a[t]++;
}
for(int i=1;i<=10000;i++){
if(a[i]!=m){
for(int i=10000;i>=1;i--){
for(int j=1;j<=a[i];j++){
cout<<i<<" ";
}
}
}
else{
continue;
i=0;
}
}
return 0;
}
资深光能
第一个循环i=0换i=1;
a-1换a
要不然输入输出不匹配
张岳恒在2020-03-16 15:05:34追加了内容
那好吧
3975思路
输入
循环特判如果a[i]==m就清零
桶数组从大到小输出
张岳恒在2020-03-16 15:23:34追加了内容
也就是说
一个循环判断
一个循环输出
望采纳,蟹蟹
初级天翼
错误有点明显哦,你的a是从0开始的,所以你的sort排序a不需要+1,后面也都要把+1去掉。
这样还不行,因为你是从0开始的,所以下面要-1
for (int i = s-1; i<=x-1; i++)
刚刚是第一种改法,前因后果都是因为你从0开始,所以你只要把从0开始改为从1开始并且把<=n-1改为<=n即可
望采纳谢谢
新手天翼
#include<iostream>
using namespace std;
int a[10010];
int main(){
int n,t,m;
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>t;
a[t]++;
}
for(int i=1;i<=10000;i++){
if(a[i]!=m){
a[i]=0;
}
else{
for(int i=10000;i>=1;i--){
for(int j=1;j<=a[i];j++){
cout<<i<<" ";
}
}
}
}
return 0;
}
是不是这样