两个非递减有序顺序表A和B合并成一个新的非递减有序顺序表C

2024-12-16 13:51:07
推荐回答(2个)
回答1:

首先你的输出A,B,C全为空说明你的标记length没有随着输入的数自加,这样需要在你的函数中加入两条语句:
scanf("%d", &a);
//scanf("\n");
for(i;i {
scanf("%d", &A.elem[i]);
A.length++;//添加
}
i = 0;
scanf("%d", &b);
//scanf("\n");
for(i=0;i {
scanf("%d", &B.elem[i]);
B.length++;//添加
}
这样加入后A,B,的输出与预期结果一样,但C中的最后一个值是随机的,说明C未能插入B中最后一个值,显然是MergeList_Sq函数出了问题。做如下改动:
将“while((pa

回答2:

首先你的输出A,B,C全为空说明你的标记length没有随着输入的数自加,这样需要在你的函数中加入两条语句:
scanf("%d",
&a);
//scanf("\n");
for(i;i{
scanf("%d",
&A.elem[i]);
A.length++;//添加
}
i
=
0;
scanf("%d",
&b);
//scanf("\n");
for(i=0;i{
scanf("%d",
&B.elem[i]);
B.length++;//添加
}
这样加入后A,B,的输出与预期结果一样,但C中的最后一个值是随机的,说明C未能插入B中最后一个值,显然是MergeList_Sq函数出了问题。做如下改动:
将“while((pa||(pb