对数字去重,排序!

来源:互联网 发布:矩阵求行列式的公式 编辑:程序博客网 时间:2024/04/26 01:57
Description

明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。

Input
输入有2行: 第1行为1个正整数,表示所生成的随机数的个数:N第2行有N个用空格隔开的正整数,为所产生的随机数。
Output
输出 也是2行:第1行为1个正整数M,表示不相同的随机数的个数。第2行为M个用空格隔开的正整数,为从小到大排好序的不相同的随机数。

Sample Input

1020 40 32 67 40 20 89 300 400 15

Sample Output

815 20 32 40 67 89 300 400

 

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
 int a[1001];
    intM,N,i,n,t;
   while(cin>>n)
 {
   memset(a,0,4004);
   while(n--)
    {
     cin>>t;
   ++a[t];
    }
    M=0;
   for(i=0;i<1001;i++)
    {
    M+=a[i]!=0;
    }
   cout<<M<<endl;
    N=0;
   for(i=0;i<1001;i++)
    {
    if(a[i]!=0)
  {
   if(N!=0)
  {cout<<" ";}
          N=1;
    cout<<i;
   }
    }
   cout<<endl;
 }

}

0 0
原创粉丝点击