一个是关于去除一个数组中的重复数问题:
如定义一个int型数组:{1,1,3,5,6,3,6,9};
要求写一个函数得到如下数据{1,3,5,6,9},即重复出现的数只保存第一次出现的那一个数据。
源代码如下:
代码
1 #include<stdio.h>
2 #include<math.h>
3 void printArray(int array[],int n)
4 {//打印数组
5 int i;
6 for(i=0;i<n;i++)
7 {
8 printf("%d,",array[i]);
9 }
10 }
11 void choiseSort(int a[],int n)
12 { ////对数组进行排序(选择排序)--升序
13 int i,j,k,temp;
14 for(i=0;i<n-1;i++)
15 {
16 k=i;
17 for(j=i+1;j<n;j++)
18 if(a[k]>a[j]) k=j;
19 if(i!=k)
20 {
21 temp=a[i];
22 a[i]=a[k];
23 a[k]=temp;
24 }
25 }
26 }
27 void DealArray(int array[],int n)
28 { //将重复元素都用(最小值-1)代替,作为重复数的标记
29 int i,j;
30 int f;
31 f=array[0]-1;
32 for(i=0;i<n;i++)
33 {
34 j=i+1;
35 while(array[i]==array[j])
36 {
37 array[j]=f;
38 j++;
39 }
40 continue;
41 }
42 }
43 void ResultArray(int array[],int n)
44 { //只打印出未被标记重复元素的元素,即为所求
45 int *p;
46 int f;
47 f=array[0]-1;
48 for(p=array;p<array+n;p++)
49 {
50 if(*p!=f)
51 {
52 printf("%d,",*p);
53 }
54 }
55 }
56 main()
57 {
58 int array[13]={7,1,12,11,8,1,1,3,5,6,3,6,9};
59 printArray(array,13);
60 printf("\n");
61 choiseSort(array,13);
62 printArray(array,13);
63 printf("\n");
64 DealArray(array,13);
65 printArray(array,13);
66 printf("\n");
67 ResultArray(array,13);
68 getch();
69 }
2 #include<math.h>
3 void printArray(int array[],int n)
4 {//打印数组
5 int i;
6 for(i=0;i<n;i++)
7 {
8 printf("%d,",array[i]);
9 }
10 }
11 void choiseSort(int a[],int n)
12 { ////对数组进行排序(选择排序)--升序
13 int i,j,k,temp;
14 for(i=0;i<n-1;i++)
15 {
16 k=i;
17 for(j=i+1;j<n;j++)
18 if(a[k]>a[j]) k=j;
19 if(i!=k)
20 {
21 temp=a[i];
22 a[i]=a[k];
23 a[k]=temp;
24 }
25 }
26 }
27 void DealArray(int array[],int n)
28 { //将重复元素都用(最小值-1)代替,作为重复数的标记
29 int i,j;
30 int f;
31 f=array[0]-1;
32 for(i=0;i<n;i++)
33 {
34 j=i+1;
35 while(array[i]==array[j])
36 {
37 array[j]=f;
38 j++;
39 }
40 continue;
41 }
42 }
43 void ResultArray(int array[],int n)
44 { //只打印出未被标记重复元素的元素,即为所求
45 int *p;
46 int f;
47 f=array[0]-1;
48 for(p=array;p<array+n;p++)
49 {
50 if(*p!=f)
51 {
52 printf("%d,",*p);
53 }
54 }
55 }
56 main()
57 {
58 int array[13]={7,1,12,11,8,1,1,3,5,6,3,6,9};
59 printArray(array,13);
60 printf("\n");
61 choiseSort(array,13);
62 printArray(array,13);
63 printf("\n");
64 DealArray(array,13);
65 printArray(array,13);
66 printf("\n");
67 ResultArray(array,13);
68 getch();
69 }