问题标题: 酷町堂:4381 30分

1
0
已解决
高子健
高子健
新手天翼
新手天翼
#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;
}


0
已采纳
张岳恒
张岳恒
资深光能
资深光能

第一个循环i=0换i=1;

a-1换a

要不然输入输出不匹配

张岳恒在2020-03-16 15:05:34追加了内容

那好吧

3975思路

输入

循环特判如果a[i]==m就清零

桶数组从大到小输出

张岳恒在2020-03-16 15:23:34追加了内容

也就是说

一个循环判断

一个循环输出

望采纳,蟹蟹  

0
王子健
王子健
初级天翼
初级天翼

错误有点明显哦,你的a是从0开始的,所以你的sort排序a不需要+1,后面也都要把+1去掉。

这样还不行,因为你是从0开始的,所以下面要-1

for (int i = s-1; i<=x-1; i++)

 

刚刚是第一种改法,前因后果都是因为你从0开始,所以你只要把从0开始改为从1开始并且把<=n-1改为<=n即可

望采纳谢谢

0
高子健
高子健
新手天翼
新手天翼

#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;
}

是不是这样

0
我要回答