已知数组a中有m个按升序序排列的元素,数组b中有n个降序排列的元素,编程将a与b中的所有元素按降序存入数组c中。下面代码哪里出错了。
#include<stdio.h>
int main()
{
int a[20];
int b[20];
int c[40];
int m,n,i,j,p=0;
scanf("%d",&m);
for(i=0;i<m;i++)
{
scanf("%d",&a[i]);//up
}
scanf("%d",&n);
for(j=0;j<n;j++)
{
scanf("%d",&b[j]);//down
}
j=0;
while(i>=0&&j<n)
{
if(a[i]>=b[j])
{
c[p]=a[i];
i--;
p++;
}
else{
c[p]=b[j];
j++;
p++;
}
}
if(i<0)
{
while(p<m+n)
{
c[p]=b[j];
j++;
p++;
}
}
if(j==n){
while(p<m+n)
{
c[p]=a[i];
i--;
p++;
}
}
for(i=0;i<m+n;i++)
{
printf("%d ",c[i]);//down
}
return 0;
}
知道哪里错了吗,帮帮忙吧