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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 [email protected]:~/桌面$ ./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 [email protected]:~/桌面$ 

 

以上是关于C练习两个已经从小到大的数组合并成为一个从小到大排序的数组的主要内容,如果未能解决你的问题,请参考以下文章

找出n个有序数组中第K小的数。怎么写算法啊?各位帮帮忙!

写一个函数,使N个整数按由小到大的顺序排列,要求在主函数中输入10个数,并输出排好序的数

合并排序,将两个已经排序的数组合并成一个数组

c语言编程,已经从小到大排好的一维9元素数组在插入一个数,按顺序,怎么写程序?谢谢

在c语言编程中如何将1-10的数从小到大排列。

怎样用c语言来解决排序问题