方法一、哈希表
#include <iostream>
using namespace std;
int main() {
int N, n;
while (cin >> N) {
int a[1001] = { 0 };
while (N--) {
cin >> n;
a[n] = 1;
}
for (int i = 0; i < 1001; i++)
if (a[i])
cout << i << endl;
}
return 0;
}
方法二、先排序,再去重复数
#include <iostream>
#include <algorithm>
using namespace std;
int a[1001], b[1001];
int main()
{
int N;
while(cin >> N)//输入的数据个数。输入多组数据
{
int i,j = 1;//**放入while循环内**
for (i = 1; i <= N; i++)
{
cin >> a[i];
}
sort(a+1,a+N+1);//从小到大排序
for (i = 1; i <= N-1; i++)
{
if (a[i] != a[i + 1])//当相邻的两个数不相等时,b[j] = a[i],然后j++,判断下一对相邻的数
{
b[j] = a[i]; j++;
}
}
b[j] = a[N];//最后一位数取不到,因为再+1,数组个数为N+1
//所以直接将排序后的最后一个数赋值给b[j]
for (i = 1; i <= j; i++)
{
cout << b[i] << endl;
}
}
return 0;
}