小明的调查作业

小明的调查作业

描述

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

 
输入
输入有2行,第1行为1个正整数,表示所生成的随机数的个数: N 第2行有N个用空格隔开的正整数,为所产生的随机数。
输出
输出也是2行,第1行为1个正整数M,表示不相同的随机数的个数。第2行为M个用空格隔开的正整数,为从小到大排好序的不相同的随机数。
样例输入
10
20 40 32 67 40 20 89 300 400 15
样例输出
8
15 20 32 40 67 89 300 400

复制代码
 
#include<iostream>
 #include<algorithm>
 using namespace std;
 int main()
 {
 int n,i,j,count,k;
 int a[1001],b[1001];
 while(cin>>n)
 {
 count=0;
 for( i=0;i<n;i++)
 {
 cin>>a[i];
 }
 for(i=0;i<n;i++)
 for(j=1+i;j<n;j++)
 {
 if(a[i]==a[j]) 
 {
     a[i]=0;
     count++;
 }
 }
 for(i=0,k=0;i<n;)
 {
 if(a[i]==0)
 i++;
 else
 {
 b[k]=a[i];
 i++,k++;
 }
 }
 sort(b,b+n-count);
 cout<<n-count<<endl;
 for(k=0;k<n-count-1;k++)
 cout<<b[k]<<" ";
 cout<<b[n-count-1]<<endl;
 }
 return 0;
 }        
复制代码

 

posted @   -渔人码头-  阅读(253)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示