问题标题: 酷町堂:我自己疑惑

0
0
已解决
武建豪
武建豪
中级天翼
中级天翼

 

3809   师生年龄排序

题目描述 Description

飞虎路小学刚刚统计了师生的年龄数据,校长希望你帮忙把这些年龄按从小到大的顺序排序,重复的年龄只保留一个。作为编程小高手的你能帮他实现吗?

输入描述 Input Description

输入共两行,第一行输入整数n,表示要输入n位师生的年龄;
第二行输入n个整数,用空格分开,分别表示每一位老师或学生的年龄。

输出描述 Output Description

输出为一行,输出去掉重复后从小到大排列的年龄,年龄中间用空格隔开。

样例输入 Sample Input

10 15 28 35 15 45 23 14 19 26 33

样例输出 Sample Output

14 15 19 23 26 28 33 35 45

数据范围及提示 Data Size & Hint

0<n<=100000,
0<年龄<=100。

 

 

#include<iostream>
#include<fstream>
#include<algorithm>
#include<cmath>
#include<cstdio>
#include<cstring>
#include<string>
#include <iomanip>
#include<cstdlib>
using namespace std;
int n,t,a[200000];
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>t;
        a[t]++;
    }
    for(int i=0;i<=100;i++){
        for(int j=1;j<=a[i];j++){
            if(a[i]!=a[i+1]){
                cout<<i<<" ";
            }
        }
    }
    return 0;
}

这个桶去重不对吗?

 


0
已采纳
荣光峰
荣光峰
资深光能
资深光能

把2重循环删掉,把if换成a[i]>0

1
1
李奕歌
李奕歌
初级天翼
初级天翼
    输入n;
    循环(1~n){
        输入t;
        a[t]++;
    }
    循环(1~500000){
        如果(a[i]>0) 输出i和空格;
    }

 

0
我要回答