如何将两个数组组合成一个升序排列的数组 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]);
}
现将两个数组升序排列 然后组合到一个数组升序排列 这个程序哪错了 求大神帮忙改改 展开
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]);
}
现将两个数组升序排列 然后组合到一个数组升序排列 这个程序哪错了 求大神帮忙改改 展开
1个回答
展开全部
已经修改完成,主要是结束时,通常是某一个数组已经结束,而另一个数组还有数据未合并到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]);
}
#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]);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询