1.合并两个数组,并保持仍然有序。2.删除合并后数组中的重复元素
标签:oid i++ while 不为 for char 退出 定义 直接
1 #include 2 /*
3 题目:1.合并两个有序数组到第三个中去,并使其依然保持有序 2.删除重复的元素
4 思路:a.分别测出二个数组的长度,将两个数组的长度之和作为第三个数组的长度
5 b.比较二个数组元素的大小,小的放入第三个数组,直至某一个数组为空,将另外一个不为空的数组剩下的元素追加到第三个数组
6 后面即可
7 c.删除重复的元素。另外定义一个数组,长度 8 d.原数组的第一个元素不用比较,直接放进第二个数组中的第一个元素中。原数组的第二个元素和第一个元素如果相同,不用放入第二个数组
9 如果不同放入第二个数组
10 */
11 #define M 4
12 #define N 6
13 int main(void)
14 {
15 int a[M] = {1,2,3,4};
16 int b[N] = {2,3,5,6,7,8};
17
18 int c[M+N],i,j,k;
19 i = j = k = 0;
20
21 while(i//如果一个数组为空就退出循环
22 {
23 if(a[i]b[j])
24 c[k++] = a[i++];
25 else
26 c[k++] = b[j++];
27 }
28 while(i//a数组不为空
29 c[k++] = a[i++];
30 while(j//b数组不为空
31 c[k++] = b[j++];
32 for(k = 0;k)
33 {
34 printf("%d\t",c[k]);
35 }
36 putchar(10);
37
38 printf("--------------删除重复的元素----------------\n");
39 int d[M+N];
40
41 d[0] = c[0];//第一个元素直接放入第二个数组
42 i = 1,j = 1;
43 while(iN)
44 {
45 if(c[i] != c[i-1])
46 {
47 d[j++] = c[i];//如果不同放入第二个数组。
48 }
49 i++;
50 }
51
52 for(i = 0;i)
53 {
54 printf("%d\t",d[i]);
55 }
56 putchar(10);
57 return 0;
58 }
1.合并两个数组,并保持仍然有序。2.删除合并后数组中的重复元素
标签:oid i++ while 不为 for char 退出 定义 直接
原文地址:https://www.cnblogs.com/wangchaomahan/p/9655846.html
评论