问题标题: 酷町堂:3712 分数统计 题目描述 Description 现在要统计全校n(n≤18,000)个人的分数,将他们从小到大排序。现在给出这n个人的分数,输出从小到大排序的结果。 输入描述 Input Description 第一行,一个整数n 接下来一行,n个由空格隔开的分数,s1 s2 ... sn 输出描述 Output Description 一行,从小到大输出这n个分数,用空格隔开 样例输入 Sample Input 10 45 50 60 70 85 32 16 88 94 62 样例输出 Sample Output 16 32 45 50 60 62 70 85 8

0
0
已解决
傅文彬
傅文彬
新手天翼
新手天翼

3712   分数统计

题目描述 Description

现在要统计全校n(n≤18,000)个人的分数,将他们从小到大排序。现在给出这n个人的分数,输出从小到大排序的结果。

输入描述 Input Description

第一行,一个整数n
接下来一行,n个由空格隔开的分数,s1 s2 ... sn

输出描述 Output Description

一行,从小到大输出这n个分数,用空格隔开

样例输入 Sample Input

 

10
45 50 60 70 85 32 16 88 94 62

样例输出 Sample Output

 

16 32 45 50 60 62 70 85 88 94


0
已采纳
孙艺芳
孙艺芳
高级守护
高级守护

for循环应该改成

for(int i=1;i<=100;i++){
    while(a[i]!=0){
        cout<<i<<" ";
        a[i]--;
    }
}

 

0
黄硕
黄硕
高级守护
高级守护

直接冒泡

定义 n;
输入>>n;
循环(int i=1;i<=n;i++)
{
输入>>a[i];
}
循环(int i=1;i<=n-1;i++)//比较的轮数 
{
循环(int j=1;j<=n-i;j++)//j代表下标 
{
如果(a[j]>a[j+1])
{
定义 tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
}
}
循环(int i=1;i<=n;i++)
输出<<a[i]<<' ';

 

0
傅文彬
傅文彬
新手天翼
新手天翼

请问大佬们思路是什么,谢谢

0
0
傅文彬
傅文彬
新手天翼
新手天翼

#include<bits/stdc++.h>
using namespace std;
int a[101],n,num;
int main()
{
     cin>>n;
     while(n--){
        cin>>num;
        a[num]++;
     }
     for(int i=1;i<=n;i++){
     cout<<a[i]<<" ";
     a[i]--;
     }
    return 0;
}

0

0
黄子扬
黄子扬
新手守护
新手守护

sort啊,这么简单都不会?

0
丁浩然
丁浩然
新手光能
新手光能

这个可以使用简单的选则排序来解决!

0
程飞
程飞
高级光能
高级光能

如果你要用桶来做的话也可以,不过你要考虑到有多个相同的分数你怎么输出,还有分数的范围是0--100,不是0--n,万一n是5你不就没数了,当然不建议用桶,毕竟题目没说分数的范围,用桶是要知道范围的,当然如果是分数的话应该是不超过100的

我要回答