```
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[1001],n,t,sum=0;
for(int i=1;i<=1000;i++){
a[i]=0;
}
cin >> n;
for(int i=1;i<=n;i++){
cin >> t;
a[t]=1;
}
for(int i=1;i<=1000;i++){
if(a[i]==1){
sum++;
}
}
cout << sum << endl;
for(int i=1;i<=1000;i++){
if(a[i]==1){
cout << i << " ";
}
}
return 0;
}
给个关注
by huang_yi_hang2014 @ 2024-03-11 21:11:10
@[chenqile](/user/953664)
```cpp
#include <cstdio>
int main(){
int n, a[1001] = {}, tmp;
scanf("%d", &n);
for (int i = 0; i < n; i++){
scanf("%d", &tmp);
a[tmp]++;
}
for (int i = 0; i < 1001; i++){
if (a[i] > 1){
n = n - a[i] + 1;
}
}
printf("%d\n", n);
for (int i = 0; i < 1001; i++){
if (a[i]){
printf("%d ", i);
}
}
return 0;
}
```
去重是当a[i]大于1是重复的个数是a[i]-1而不是1
by wjr_jok @ 2024-03-11 21:11:18
@[chenqile](/user/953664)
```cpp
#include <cstdio>
int main(){
int n, a[1001] = {}, tmp;
scanf("%d", &n);
for (int i = 0; i < n; i++){
scanf("%d", &tmp);
a[tmp]++;
}
for (int i = 0; i < 1001; i++){
while(a[i] > 1){
n--;
--a[i];
}
}
printf("%d\n", n);
for (int i = 0; i < 1001; i++){
if (a[i]){
printf("%d ", i);
}
}
return 0;
}
```
改成 $while$ 并且同时 $--a[i]$ 就好了。
by lqsy002 @ 2024-03-11 21:16:28
有效答案有wjr_jok,给一个关注
by chenqile @ 2024-03-11 21:34:32
```cpp
#include<iostream>
using namespace std;
int a[10005]={},b[10005]={};
int main()
{
int n,t,sum=0;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>t;
a[t]=1;
}
for(int i=1;i<=1000;i++)
{
if(a[i]==1)
{
sum++;
}
}
cout<<sum<<endl;
for(int i=1;i<=1000;i++)
{
if(a[i]==1)
{
cout<<i<<" ";
}
}
return 0;
}
```
@[chenqile](/user/953664)
by yicheng121212 @ 2024-04-14 15:15:56
@[yicheng121212](/user/995655) ,远古帖你也回答,已经解决了
by chenqile @ 2024-04-14 16:28:59
# 远古帖??
@chenqile!
chenqile
发表于 2024-03-11 21:05
by yicheng121212 @ 2024-04-21 09:14:14