[RQNOJ]PID1-明明的随机数

http://www.rqnoj.cn/problem/1

 1 #include 
 2 #include 
 3 
 4 /*用法:void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));
 5 *参数:
 6 *----->1 待排序数组首地址。
 7 *----->2 数组中待排序元素数量。
 8 *----->3 各元素的占用空间大小。
 9 *------>4 指向函数的指针,用于确定排序的顺序。*/
10 int comp(const void *a,const void *b);/*升序*/
11 
12 /*
13 *函数功能:数组去重
14 *参数:
15 *----->1 待排序数组首地址。
16 *----->2 数组中待排序元素数量。*/
17 int PID1_duplicateRemoval(int *data,int n);
18 
19 /*
20 *函数功能:数组初始化
21 *参数:
22 *----->1 待排序数组首地址。
23 *----->2 数组中待排序元素数量。*/
24 void PID1_initialization(int *data,int n);
25 
26 /*
27 *函数功能:结果输出
28 *参数:
29 *----->1 待排序数组首地址。
30 *----->2 数组中待排序元素数量。*/
31 void PID1_output(int *data,int n);
32 
33 int main(){
34     int i;
35     int n,data[100];
36     while(scanf("%d",&n)!=EOF){
37         PID1_initialization(data,n);
38         qsort(data,n,sizeof(int),comp);
39         PID1_output(data,PID1_duplicateRemoval(data,n));
40     }
41     return 0;
42 }
43 
44 int comp(const void *a,const void *b){
45     return *(int *)a-*(int *)b;
46 }
47 
48 int PID1_duplicateRemoval(int *data,int n){
49     int i,j;
50     i=1,j=0;
51     while(i<n){
52         if(data[i]!=data[j])
53             data[++j]=data[i];
54         i++;
55     }
56     return j+1;
57 }
58 
59 void PID1_initialization(int *data,int n){
60     int i;
61     for(i=0;i)
62         scanf("%d",&data[i]);
63 }
64 
65 void PID1_output(int *data,int n){
66     int i;
67     printf("%d\n",n);
68     for(i=0;i){
69         if(i)
70             printf(" ");
71         printf("%d",data[i]);
72     }
73     printf("\n");
74 }

转载于:https://www.cnblogs.com/KurokoTetsuya/p/3570134.html

你可能感兴趣的:([RQNOJ]PID1-明明的随机数)