明明的随机数

来源:互联网 发布:电子商务软件开发 编辑:程序博客网 时间:2024/04/30 05:57

题目描述

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

输入

有2行,第1行为1个正整数,表示所生成的随机数的个数:
N
第2行有N个用空格隔开的正整数,为所产生的随机数。

输出

也是2行,第1行为1个正整数M,表示不相同的随机数的个数。第2行为M个用空格隔开的正整数,为从小到大排好序的不相同的随机数。

样例输入

1020 40 32 67 40 20 89 300 400 15

样例输出

815 20 32 40 67 89 300 400
#include<iostream> using namespace std; int main() {     int n,i,j,temp,t=1;     int a[102];     cin>>n;     for(i=0;i<n;i++)         cin>>a[i];     for(i=0;i<n;i++)         for(j=0;j<n-1;j++)             if(a[j]>a[j+1])             {                 temp=a[j];                 a[j]=a[j+1];                 a[j+1]=temp;             }     temp=1;     for(i=1;i<n;i++)         if(a[i]!=a[i-1])             temp++;     cout<<temp<<endl;     cout<<a[0]<<" ";     for(i=1;i<n;i++)         if(a[i]!=a[i-1])         {             t++;             if(t!=temp)                 cout<<a[i]<<" ";             else                cout<<a[i]<<endl;         }     return 0; } 

方法可能不是最优的,毕竟我现在才是学生,学习的时间还不算很长,这个可能只供参考提供一下思路,见多识广嘛,你有更好的方法也能留留言,大家交流交流