问题标题: 酷町堂:4380

0
0
已解决
方国栋
方国栋
初级光能
初级光能

题目描述 Description

**想知道班上同学有多少人高于平均分,并且按照从高到低的顺序显示每个人的分数。
**又找到了酷酷帮忙,酷酷很快就完成了任务,**夸酷酷真是个编程小能手。
现在给出n(n<=1000)个人的考试分数,请将分数高于平均分(平均分取整)的同学的分数按从高到低的顺序输出出来。

输入描述 Input Description

输入两行,
第一行,一个正整数,表示同学的人数;
第二行,n个正整数,表示每名同学的分数。

输出描述 Output Description

输出一行,若干个正整数,用空格隔开,表示分数高于平均分的同学的分数(从高到低排序)。

样例输入 Sample Input

5 150 250 200 300 240

样例输出 Sample Output

300 250 240

数据范围及提示 Data Size & Hint

5个人的分数从大到小排序分别是300,250,240,200,150,而他们的平均分是228,则高于平均分的同学分数为300 250 240。


0
已采纳
朱小川
朱小川
缔造者
缔造者

for(int i=1;i<=n;i++){ cin>>a[i]; sum+=a[i]; } p=sum/n; for(int i=1;i<=n;i++){ for(int j=i+1;j<=n;j++){ if(a[i]<a[j]){ int tap=a[i]; a[i]=a[j]; a[j]=tap; } } } for(int i=1;i<=n;i++){ if(a[i]>p){ cout<<a[i]<<" "; } }

0
王文博
王文博
缔造者之神
缔造者之神

核心:

for(int i=1;i<=n;i++)
    {
        int pos=i;
        for(int j=i+1;j<=n;j++)
        {
            if(a[pos]<a[j]) pos=j;
        }
        if(pos!=i)
        {
            int t=a[pos];
            a[pos]=a[i];
            a[i]=t;
        }
    }

望采纳!

我要回答