1245:不重复地输出数
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 5045 通过数: 2583
【题目描述】
输入n个数,从小到大将它们输出,重复的数只输出一次。保证不同的数不超过500个。
【输入】
第一行是一个整数n。1 ≤ n ≤ 100000。
之后n行,每行一个整数。整数大小在int范围内。
【输出】
一行,从小到大不重复地输出这些数,相邻两个数之间用单个空格隔开。
【输入样例】
5
2 4 4 5 1
【输出样例】
1 2 4 5
【分析】
本题C语言可以直接用qsort函数,C++可以直接用sort函数,将数据进行排序,然后去重输出。
【参考代码】
#include <stdio.h>
#include <stdlib.h>
#define N 100010
int a[N];
int cmp(const void *a,const void *b)
{
return *(int *)a - *(int *)b;
}
int main()
{
int i,n,last;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
qsort(a,n,sizeof(a[0]),cmp);
last=a[0]-1;
for(i=0;i<n;i++)
{
if(a[i]!=last)
{
printf("%d ",a[i]);
last=a[i];
}
}
printf("\n");
return 0;
}