トピックリンク:
ポータル
トピックの説明:
明らかに、学校でアンケート調査を行うように生徒を招待したいと思います。実験の客観性のために、彼は最初にコンピューターで1から1000(N≤100)までのN個のランダムな整数を生成しました。同じ番号の残りを削除します。異なる番号は異なる学生IDに対応します。次に、これらの数字を小さいものから大きいものへと並べ替え、クラスメートに行って並べ替えられた順序で調査を行います。「重複排除」と「並べ替え」の作業を明確に完了するのを手伝ってください。
入力フォーマットは:
入力の2つの系統があり、最初の行が生成された乱数の数を示し、1は正の整数である:
N
2行目はnは正の整数で発生した乱数であり、スペースで区切られています。
出力形式:
出力も2行で、最初の行は正の整数Mで、さまざまな乱数の数を表します。2行目は、スペースで区切られたM個の正の整数です。これは、小さいものから大きいものへとソートされたさまざまな乱数です。
入力例:
10
20 40 32 67 40 20 89300400 15
サンプル出力:
8
15 20 32 40 67 89300400
c言語参照コード:
#include <stdio.h>
#include <stdlib.h>
#define MAX 1001
int a[MAX];
int visit[MAX];
int cmp(const void *a,const void *b)
{
int* pa=(int*)a;
int* pb=(int*)b;
int num1=*pa;
int num2=*pb;
int t=num1-num2;
return t;
}
int main()
{
int N,i=1,j=0,x,count=0;
scanf("%d",&N);
while(i<=N)
{
scanf("%d",&x);
if(visit[x]==0)
{
visit[x]=1;
a[j++]=x;
count++;
}
i++;
}
qsort(a,count,sizeof(a[0]),cmp);
printf("%d\n",count);
for(j=0;j<count;j++)
printf("%d ",a[j]);
return 0;
}