1. 程式人生 > >【華為 OJ】 明明的隨機數

【華為 OJ】 明明的隨機數

題目:

明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了N個1到1000之間的隨機整數(N≤1000),對於其中重複的數字,只保留一個,把其餘相同的數去掉,不同的數對應著不同的學生的學號。然後再把這些數從小到大排序,按照排好的順序去找同學做調查。請你協助明明完成“去重”與“排序”的工作。

Input Param 

     n               輸入隨機數的個數     

 inputArray      n個隨機整陣列成的陣列 

Return Value

     OutputArray    輸出處理後的隨機整數

注:測試用例保證輸入引數的正確性,答題者無需驗證。測試用例不止一組。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    int len;
    while (scanf("%d", &len) != EOF)
    {
        int i, j, temp, arr[1000],  k = 0;
        //int brr[100];
        for (i = 0; i < len; i++)
            scanf("%d", &arr[i]);
        for (i = 0; i < len - 1; i++)
        {
            for (j = len - 1; j > i; j--)
            {
                if (arr[j - 1]>arr[j])
                {
                    temp = arr[j];
                    arr[j] = arr[j - 1];
                    arr[j - 1] = temp;
                }
            }
        }
    /*  for (i = 0; i < len; i++)
        {
            if (arr[i] != brr[k - 1])
            {
                brr[k] = arr[i];
                k++;
            }
        }*/
 
        for (i = 1; i <= len; i++)
        {
            if (arr[k] != arr[i])
            {
                 
                arr[++k] = arr[i];
            }
        }
 
        len = k;
        for (i = 0; i < len; i++)
        {
            printf("%d\n", arr[i]);
        }
    }
    //system("pause");
    return 0;
}