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

本文介绍了一个C语言程序,该程序可以将两个已排序的整数数组合并为一个新的有序数组。程序首先读取两个数组的长度及元素,然后通过比较两个数组的元素来逐个填充新的数组,确保最终数组按升序排列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 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:~/桌面$ 

 

转载于:https://www.cnblogs.com/Bird-Xu/p/6135987.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值