去重排序

题意:给出N个数,将其中重复出现的去掉,再将新的序列进行排序输出;

#include<stdio.h>
#include<stdlib.h>
int cmp(const void *a, const void *b)
{
    return *(int *)a-*(int *)b;
}
int main()
{
   int a[101];
   int b[101]={0};
   int m;
   int k=0;
    while(scanf("%d",&m)!=EOF)
    {
        int i,j;
        for(i=0;i<m;i++)
           scanf("%d",&a[i]); 
        
       for(i=0;i<m;i++)
          for(j=0;j<m;j++)
             if(a[i]==a[j]&&i!=j) 
             { a[i]=0;k++;break;}
       
       qsort(a,m,sizeof(int),cmp);
          printf("%d\n",m-k);
         int flag=1;
           for(i=0;i<m;i++)
             if(a[i]!=0){
                 if(flag){printf("%d",a[i]);flag=0;}
                 else printf(" %d",a[i]);}
      
    }
  return 0;
}

原文地址:https://www.cnblogs.com/QQbai/p/2135148.html