首页 > 代码库 > 【C练习】两个已经从小到大的数组合并成为一个从小到大排序的数组

【C练习】两个已经从小到大的数组合并成为一个从小到大排序的数组

两个已经从小到大的数组合并成为一个从小到大排序的数组

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int m,n,i,j,k,tem=0;
 5     printf("这两个数组分别有多少个数:\n");
 6     scanf("%d%d",&m,&n);
 7     int a[m],b[n],c[m+n];
 8     printf("从小到大输入%d个数:\n",m);
 9     for(i=0;i<m;i++)
10         scanf("%d",&a[i]);
11     printf("从小到大输入%d个数:\n",n);
12     for(i=0;i<n;i++)
13         scanf("%d",&b[i]);
14     i=0;j=0;k=0;
15     do
16     {
17         if(a[i]==b[j])
18         {
19             c[k]=a[i];
20             k++;
21             c[k]=b[j];
22             k++;i++;j++;
23         }
24         else if (a[i]>b[j])
25         {
26             c[k]=b[j];
27             j++;k++;
28         }
29         else
30         {
31             c[k]=a[i];
32             i++;
33             k++;
34         }
35     }
36     while((i!=m)&&(j!=n));
37     if(i==m)
38         for(;j<n;j++,k++)
39             c[k]=b[j];
40     if(j==n)
41         for(;i<m;i++,k++)
42             c[k]=a[i];
43     printf("结果是:\n");
44     for (;tem<m+n;tem++)
45         printf("%d ",c[tem]);
46     printf("\n");
47     return 0;
48 }
49 测试运行:
50 xuxiang@xuxiang-X556UQ:~/桌面$ ./2
51 这两个数组分别有多少个数:
52 6 4
53 从小到大输入6个数:
54 6 9 11 13 13 13    
55 从小到大输入4个数:
56 1 13 13 19
57 结果是:
58 1 6 9 11 13 13 13 13 13 19 
59 xuxiang@xuxiang-X556UQ:~/桌面$ 

 

【C练习】两个已经从小到大的数组合并成为一个从小到大排序的数组