1. 程式人生 > >ZZULIOJ.1122: 小明的調查作業

ZZULIOJ.1122: 小明的調查作業

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; }