问题遇到的现象和发生背景
连接两个有序线性表,并存入L中 ,但输不出L的内容
问题相关代码,请勿粘贴截图
# include <stdio.h>
# define MaxSize 10
typedef struct //定义结构体
{
int date[MaxSize];
int length;
}SeqList;
bool merge(SeqList L1, SeqList L2, SeqList &L) //连接两个有序线性表,并存入L中
{
if(L1.length + L2.length > MaxSize)
return false;
else
{
int i = 0, j = 0, k = 0;
while(i<L1.length && j<L2.length)
{
if(L1.date[i] <= L2.date[j])
{
L.date[k] = L1.date[i];
k++;
i++;
}
else
{
L.date[k] = L1.date[j];
k++;
j++;
}
}
while(i<L1.length)
{
L.date[k] = L1.date[i];
k++;
i++;
}
while(i<L2.length)
{
L.date[k] = L1.date[j];
k++;
j++;
}
L.length = k;
printf("%d", L.length);
return true;
}
}
void PrintList(SeqList L) //输出线性表L
{
for(int i=0; i<L.length; i++)
printf("%3d", L.date[i]);
}
int main(void)
{
SeqList L1;
SeqList L2;
SeqList L;
printf("请输入第一个表的表长:");
scanf("%d", &L1.length);
printf("请输入第一个表的元素:");
for(int i=0; i<L1.length; i++)
scanf("%d", &L1.date[i]);
printf("请输入第二个表的表长:");
scanf("%d", &L2.length);
printf("请输入第二个表的元素:");
for(int i=0; i<L2.length; i++)
scanf("%d", &L2.date[i]);
if(merge(L1, L2, L))
PrintList(L);
else
printf("输入错误");
}