总结:遇到“去重”与“排序”的问题,记住要先排序,然后再去重,因为排完序之后,重复的肯定在一起,只需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            

相关文章:

  • 2021-11-11
  • 2021-06-20
  • 2021-09-07
  • 2021-11-17
  • 2021-09-13
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-12-21
  • 2021-11-02
  • 2021-08-07
  • 2021-08-09
  • 2021-11-08
相关资源
相似解决方案