1488 偷懒的明明

来源:互联网 发布:360路由器端口有多少个 编辑:程序博客网 时间:2024/04/27 15:52
 描述

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

输入

输入有2m+1行,第1行测试数据的组数m,剩下的2m行分别为m组测试数据。每组测试数据的第一行为整数个数N,下面一行分别为N个用空格隔开的整数。

输出

输出为m行对应m组测试数据,分别为去重,排序后的整数。用空格隔开。

解题思路:此题要求去重和排序,可以先排序,然后在排好序的数组中删去重复的元素,用另一个数组存储去重后的元素即可。

 

#include<stdio.h>main(){  int number,te;int temp,i,j,k;int a[1002];int temper;int b[1002];int count;scanf("%d",&number);for(te=1;te<=number;te++){       for(i=0;i<1002;i++)   a[i]=0;   for(i=0;i<1002;i++)   b[i]=0;   scanf("%d",&temp);   for(i=0;i<temp;i++)   scanf("%d",&a[i]);   for(i=0;i<temp;i++)   {   for(j=i+1;j<temp;j++)   if (a[i]>a[j])   {   temper=a[i];   a[i]=a[j];   a[j]=temper;   }   }         b[0]=a[0];   k=0;      for(i=1;i<temp;i++)  {   if(b[k]!=a[i])  {  k++;  b[k]=a[i];      }  }                  for(i=0;i<=k;i++)  printf("%d ",b[i]);  printf("\n");    }}


 

原创粉丝点击