总结:遇到“去重”与“排序”的问题,记住要先排序,然后再去重,因为排完序之后,重复的肯定在一起,只需a[i]!=a[i-1],把a[1]输出即可。排序可以用qsort,也可用冒泡排序,两个for循环。刚开始一直wa,后来终于发现自己犯了一个低级错误,我把count=0;定义在了while(t--)上面,这样的话导致我进行下一组测试时count不能从0开始,受伤一次的影响,太傻了,谨记,当遇到要进行多组测试数据时,计数的变量在每次进行新数据时要清零,方法就是把它放到while或者for循环里
1 #include<stdio.h> 2 #include<stdlib.h> 3 int cmp(const void *a,const void *b) 4 { 5 return *(int *)a-*(int *)b; 6 } 7 int main() 8 { 9 int t,n,i,j,count; 10 int a[1010]; 11 scanf("%d",&t); 12 while(t--) 13 { 14 scanf("%d",&n); 15 for(i=0;i<n;i++) 16 scanf("%d",a+i); 17 qsort(a,n,sizeof(a[0]),cmp); 18 for(count=i=0;i<n;i++) 19 { 20 if(a[i]==a[i+1]) 21 {count++;continue;} 22 } 23 printf("%d\n",n-count); 24 for(i=0;i<n;i++) 25 if(a[i]!=a[i-1]) 26 printf("%d ",a[i]); 27 putchar('\n'); 28 } 29 system("pause"); 30 return 0; 31 } 32