为何最后一个数字是乱的呢
这个是代码部分
SeqList* MergeList(SeqList* L, SeqList* L1) {
int i, j, k;
i = 0; j = 0; k = 0;
SeqList* plus;
plus = (SeqList)malloc(sizeof(SeqList));
plus->last = 0;
while ((i != L->last)&&(j != L1->last)) {
if (L->number[i] <= L1->number[j]) {
plus->number[k] = L->number[i];
i++;
k++;
}
else {
plus->number[k] = L1->number[j];
j++;
k++;
}
}
while (i <=L->last) {
plus->number[k] = L->number[i];
i++;
k++;
}
while (j <=L1->last) {
plus->number[k] = L->number[j];
j++;
k++;
}
plus->last =L->last+L1->last;
return plus;
}
//输出操作
void outPut(SeqList L) {
for (int i = 0; i <=L->last; i++) {
printf("%d ", L->number[i]);
}
}
GDB (GUN Debugger)
开始吧!
有一个负数,难道是越界了?
合并功能?输入6个数,最后出来7个?
typedef struct SeqList {
int number[MAXSIZE];
int last;
}SeqList;
我是定义了一个顺序表
写的合并的方法
最后一个数为啥这样。。。
@新手小白。:
所以要调试啊,这个值 看起来像个 地址,而不是数。
检查下 最后一个值的存储情况。
不要输入3个数,从1个数的list合并开始。
@快乐的凡人721: 已经找到原因了,是我那个方法逻辑上有问题,非常感谢
@新手小白。:
辛苦了啊!今早 吃好点,补补