明明的随机数

 1 #include <stdio.h>
 2 #include <string.h>
 3 #include <stdlib.h>
 4 int mp(int len,int* str)
 5 {
 6    int mnt = 0;
 7    int *newStr = (int*)malloc(sizeof(int)* len);
 8    for(int i = 0;i < len - 1;i++)
 9    {
10        for(int j =0;j < len -1 -i;j++)
11        {
12            if(str[j] > str[j+1])
13            {
14                mnt = str[j];
15                str[j] = str[j+1];
16                str[j+1] = mnt;
17            }
18        }
19    }
20    for(int i = 0;i < len;i++)
21    {
22        newStr[i] = str[i];
23    }
24    memset(str,0,sizeof(int)*len);
25    int j = 0;
26    for(int i = 0;i < len-1;i++)
27    {
28        if(newStr[i] != newStr[i+1])
29        {
30            str[j] = newStr[i];
31            j++;
32        }
33    }
34    str[j] = newStr[len -1];
35    free(newStr);
36    return j;
37 }
38 int main()
39 {
40     int num;
41     int j;
42     int st1[1000];
43     memset(st1,0,sizeof(st1));
44     while(fscanf(stdin,"%d",&num) != EOF)
45     {
46         for(int i = 0;i < num;i++)
47         {
48             fscanf(stdin,"%d",&st1[i]);
49         }
50         //冒泡
51         j = mp(num,st1);
52         for(int i= 0;i < j+1;i++)
53             printf("%d\n",st1[i]);
54     }
55     return 0;
56 }

 

题目描述

明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数 字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成 “去重”与“排序”的工作。

 

 

Input Param 

     n               输入随机数的个数     

 inputArray      n个随机整数组成的数组 

     

Return Value

     OutputArray    输出处理后的随机整数

 


注:测试用例保证输入参数的正确性,答题者无需验证。测试用例不止一组。


 

 


输入描述:

输入多行,先输入随机整数的个数,再输入相应个数的整数



输出描述:

返回多行,处理后的结果


输入例子:
11
10
20
40
32
67
40
20
89
300
400
15

输出例子:
10
15
20
32
40
67
89
300
400
posted @ 2017-01-15 19:13  ailx10  阅读(219)  评论(0编辑  收藏  举报