- 【基础】去除重复数字 [ 刷题2路4线 ]
时间限制: 1000MS
空间限制: 16MB
结果评判: 文本对比
正确/提交: 29 (21) / 45
官方标签: 数组
普及-
题目描述
给你N个数(n<=100),每个数都在(0~1000)之间,其中由很多重复的数字,请将重复的数字只保留一个,并将剩下的数由小到大排序并输出。
输入描述
输入有2行,
第1行为1个正整数,表示数的个数:N
第2行有N个用空格隔开的整数。
输出描述
第1行为1个正整数M,表示不相同数的个数。
接下来的M行,每行一个整数,表示从小到大排好序的不相同的数。
样例
×样例只是举例,并非全部测试数据,请保证您的程序能应对任意符合题意的数据!
输入 复制
10
20 40 32 67 40 20 89 300 400 15
输出 复制
8
15
20
32
40
67
89
300
400
#include<bits/stdc++.h>
using namespace std;
int a[107];
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
sort (a , a + n );
for(int i = 1;i<n;i++){
if(a[i]==a[i-1]){
a[i-1]=0;
}
}
;
int cnt=0;
for(int i=0;i<n;i++){
if(a[i]!=0){
cnt++;
}
}
cout<<cnt<<endl;
for(int i=0;i<n;i++){
if(a[i]!=0){
cout<<a[i]<<endl;
}
}
return 0;
}