郑州轻工业大学OJ1122: 小明的调查作业

妖狐艹你老母 2024-05-01 16:06 145阅读 0赞

题目描述

小明的老师布置了一份调查作业,小明想在学校中随机找N个同学一起做一项问卷调查,聪明的小明为了实验的客观性,他先随机写下了N个1到1000之间的整数(0<N≤1000),不同的数对应着不同的学生的学号。但他写下的数字难免会有重复数字,小明希望能把其余重复的数去掉,然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。

输入

输入有2行,第1行为1个正整数,表示整数的个数:N.
第2行有N个用空格隔开的正整数,表示小明写下的N个整数。

输出

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

样例输入 Copy

  1. 10
  2. 20 40 32 67 40 20 89 300 400 15

样例输出 Copy

  1. 8
  2. 15 20 32 40 67 89 300 400
  1. #include<stdio.h>
  2. int main()
  3. {
  4. int i,j,t,n,a[1001],b=0;
  5. scanf("%d",&n);
  6. for(i=0;i<n;i++)
  7. scanf("%d",&a[i]);
  8. //去重,将重复出现的数都置为-1
  9. for(i=0;i<n;i++)
  10. {
  11. if(a[i]!=-1) b++; //统计不重复的元素个数
  12. for(j=i+1;j<n;j++)
  13. {if(a[i]==a[j])//a[j]与a[i]相等,将其置为-1
  14. a[j]=-1;}
  15. }
  16. //按照从小到大的顺序排序
  17. for(i=0;i<n;i++)
  18. for(j=i+1;j<n;j++)
  19. {
  20. if(a[i]>a[j])
  21. {
  22. t=a[i];a[i]=a[j];a[j]=t;
  23. }
  24. }
  25. //输出
  26. printf("%d\n",b); // 输出不重复的元素个数
  27. for(i=0;i<n;i++)
  28. {
  29. if(a[i]!=-1)
  30. printf("%d ",a[i]);
  31. }
  32. return 0;
  33. }

发表评论

表情:
评论列表 (有 0 条评论,145人围观)

还没有评论,来说两句吧...

相关阅读

    相关 郑州轻工业大学OJ1135: 算菜价

    题目描述妈妈每天都要出去买菜,但是回来后,兜里的钱也懒得数一数,到底花了多少钱真是一笔糊涂帐。现在好了,作为好儿子(女儿)的你可以给她用程序算一下了,呵呵。输入输入含有一...