C语言:两数组合并,并升序排列。

定义函数voidMerge(inta[],intn,intb[],intm),参数a、b为一维数组,数组中的数据为升序排列,n和m分别为它们的元素个数。函数的功能为:将数... 定义函数void Merge(int a[], int n, int b[], int m),参数a、b为一维数组,数组中的数据为升序排列,n和m分别为它们的元素个数。函数的功能为:将数组a和b合并为一个数组,合并后的结果存放于数组a中,要求合并后的数组a仍旧为升序排列。请编程实现,并编写main函数对其测试。
#include<stdio.h>
void Merge(int a[],int n,int b[],int m)
{ int i,j,k;
for(i=0,j=0;i<m+n&&j<m;i++)
if(a[i]>b[j])
{ for(k=m+n;k>=i;k--)
a[k]=a[k-1];
a[i]=b[j];
j++;
}
for(i=0;i<m+n;i++)
printf("%d ",a[i]);
}
int main()
{ int a[100]={1,3,5,7};
int b[4]={2,4,6,8};
Merge(a,4,b,4);
}
上列代码只能排前面的,最后一个出错,求高手指导并改正哦,谢谢咯!!
展开
 我来答
百度网友d580670
2012-05-13 · TA获得超过1983个赞
知道大有可为答主
回答量:2054
采纳率:82%
帮助的人:700万
展开全部
nt i,j,k;
for(i=0,j=0;j<m;i++)
if(a[i]>b[j])
{for(k=i+m;k>=i;k--)
a[k]=a[k-1];
a[i]=b[j];
j++;
}else if(i>n){a[i]=b[j];}
}
追问
不明白,求全代码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
741852963一
2012-05-13 · TA获得超过268个赞
知道小有建树答主
回答量:354
采纳率:0%
帮助的人:212万
展开全部
噢 这个。这个最好是在用一个数组,否则要在a数组中将元素向后移动,有点麻烦。楼主想怎么做?
更多追问追答
追问
把b数组一到a中,然后再升序。
追答
已知a,b数组元素个数吗?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式