c语言 非递减有序集合合并 代码输出不正确

巳知线性表LA和线性表LB中的数据元素按值非递减有序排列,现要求将LA和LB归并为一个新的线性表LC,且LC中的元素仍按值非递减有序排列。
输入
三行,第一行A,B集合的个数n,m
第二行:集合A的数据;
第三行:集合B的数据。
输出
二行,第一行,集合C的个数k
第二行:集合C的数据。
#include
void main()
{
int i,j,n,m,h,k=0,a[100],b[100],c[100];
scanf("%d %d",&n,&m);
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
for(j=1;j<=m;j++)
{
scanf("%d",&b[j]);
}
while(i==n||j==m)
{
for(k=0;;k++)
{
if(a[i]>b[j])
{
c[k]=a[i];
i++;
}
else if(a[i]<b[j])
{
c[k]=b[j];
j++;
}
else
{
c[k]=a[i];
i++;
j++;
}
}
}
while(i<=n)
{
c[k++]=a[i];
i++;
}
while(j<=m)
{
c[k++]=b[j];
j++;
}
printf("%d\n",k);
for(h=0;h<=k;h++)
{
printf("%d ",c[h]);
}
printf("\n");
}
请问怎么修改??

在输入两个数组的for循环前分别加个getchar()试试。

While 循环条件有问题吧