RQNOJ明らかに乱数

トピックリンク:
ポータル

トピックの説明:
明らかに、学校でアンケート調査を行うように生徒を招待したいと思います。実験の客観性のために、彼は最初にコンピューターで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;
}

おすすめ

転載: blog.csdn.net/qq_46139801/article/details/115125632