下面是我写的程序和运行的结果
#include
#include
int cmp(const void *p, const void *q)
{
return *(int *)p-*(int *)q;
}
int main()
{
int a[100], b[100], n, m, i, j; //数组a为了接收数据,数组b为了存放已经除去重复的元素
printf("请输入数据,按ctrl+z结束输入:\n");
i=0;
while(scanf("%d", &a[i])!=EOF) i++;
n=i; //n为输入数据的个数
m=0; //m为此时数组b中的元素个数
for(i=0; i { for(j=0; j { if(a[i]==b[j]) break; } if(j==m) //数组b中没有该元素 { b[m]=a[i]; m++; } } qsort(b, m, sizeof(int), cmp); //快排进行排序 for(j=0; j { printf("%-5d", b[j]); } }
只要在输出的时候过滤掉重复的数就行了(若后一个等于前一个,不输出后一个)。