如何将两个数组组合成一个升序排列的数组 c语言程序求改错

#include"stdio.h"voidmain(){inta[5],b[5],c[11];inti,j,k,l,m=0;printf("pleaseinput5num... #include "stdio.h"
void main()
{
int a[5],b[5],c[11];
int i,j,k,l,m=0;
printf("please input 5 numbers; \n");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
printf("please input another 5 numbers; \n");
for(i=0;i<5;i++)
scanf("%d",&b[i]);
for(i=0;i<4;i++)
for(j=0;j<4-i;j++)
{if(a[j]>a[j+1])
{k=a[j];
a[j]=a[j+1];
a[j+1]=k;}
if(b[j]>b[j+1])
{l=b[j];
b[j]=b[j+1];
b[j+1]=l;}}
i=j=0;
while(i<=5&&j<=5)
if(a[i]<b[j])
c[m++]=a[i++];
else c[m++]=b[j++];
for(i=0;i<10;i++)
printf("%d ",c[i]);
}
现将两个数组升序排列 然后组合到一个数组升序排列 这个程序哪错了 求大神帮忙改改
展开
 我来答
听不清啊
高粉答主

2015-01-23 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
已经修改完成,主要是结束时,通常是某一个数组已经结束,而另一个数组还有数据未合并到c中:
#include "stdio.h"
void main()
{
int a[5],b[5],c[11];
int i,j,k,l,m=0;
printf("please input 5 numbers; \n");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
printf("please input another 5 numbers; \n");
for(i=0;i<5;i++)
scanf("%d",&b[i]);
for(i=0;i<4;i++)
for(j=0;j<4-i;j++)
{if(a[j]>a[j+1])
{k=a[j]; a[j]=a[j+1]; a[j+1]=k;}
if(b[j]>b[j+1])
{l=b[j]; b[j]=b[j+1]; b[j+1]=l;}
}
i=j=0;
while(i<5&&j<5)
if(a[i]<b[j])c[m++]=a[i++];
else c[m++]=b[j++];
for(;i<5;i)c[m++]=a[i++]; //注意这里
for(;j<5;j)c[m++]=b[j++]; //注意这里
for(i=0;i<10;i++)
printf("%d ",c[i]);
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式