pta的题,在一行中输出合并后新的非降序链表,我用的c语言数组做的,有错误

问题遇到的现象和发生背景

img

问题相关代码,请勿粘贴截图

#include<stdio.h>
int main()
{
int i,j,n,m,k,l,max;
int a[n],b[m],c[k];//用c存储a和b
for(i=0;;i++)
{scanf("%d",&a[i]);
if(a[i]==-1)break;}//输入a
for(j=0;;j++)
{scanf("%d",&b[j]);
if(b[j]==-1)break;}//输入b
i=j=0;k=0;
while(a[i]!=-1&&b[j]!=-1)//将ab按递增存入c
{if(a[i]<b[j]) c[k++]=a[i++];else c[k++]=b[j++];}
while(a[i]!=-1)
c[k++]=a[i++];
while(b[j]!=-1)
c[k++]=b[j++];
if(k!=0)//输出c
{for(l=0;l<k-1;l++)
printf("%d ",c[l]);
printf("%d",c[l]);}
else printf("NULL");}

运行结果及报错内容

img


还有就是如果a和b不一样长,c的输出只有b的数,a和b一样长,结果好像是对的

img

img

序列没有规定最大长度,直接用数组肯定会段错误的