ZZULIOJ.1122: 小明的調查作業
阿新 • • 發佈:2018-12-22
1122: 小明的調查作業
題目描述
小明的老師佈置了一份調查作業,小明想在學校中隨機找N個同學一起做一項問卷調查,聰明的小明為了實驗的客觀性,他先隨機寫下了N個1到1000之間的整數(0<N≤1000),不同的數對應著不同的學生的學號。但他寫下的數字難免會有重複數字,小明希望能把其餘重複的數去掉,然後再把這些數從小到大排序,按照排好的順序去找同學做調查。請你協助明明完成“去重”與“排序”的工作。
輸入
輸入有2行,第1行為1個正整數,表示整數的個數:N.
第2行有N個用空格隔開的正整數,表示小明寫下的N個整數。
輸出
輸出也是2行,第1行為1個正整數M,表示不相同的整數的個數。第2行為M個用空格隔開的正整數,為從小到大排好序的不相同的整數。
樣例輸入
10
20 40 32 67 40 20 89 300 400 15
樣例輸出
8
15 20 32 40 67 89 300 400
#include<stdio.h>
int main()
{
int n,m,i,j,a[1001],t;
scanf("%d",&n);
m=n;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);//存入陣列
}
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(a[ i]>a[j])//陣列排序
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
for(i=0;i<n;i++)
{
if(a[i]==a[i+1])//如果有相等零值等於零
{
a[i]=0;
m=m-1;//不為零的總數
}
}
printf("%d\n",m);
for(i=0;i<n;i++)
{
if(a[i]==0)//為零不輸出
continue;
else
printf("%d ",a[i]);
}
getchar();//吸收最後一個空格
return 0;
}