蜗牛_coding 2022-09-03 09:19 采纳率: 0%
浏览 24

找了好久还是不懂为啥,为什么一个插入(CreateList1())输出就是图片这种情况,而(CreateList2())就可以输出成功,不是明明都一样吗?


#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0

typedef int ElemType;
typedef int Status;

typedef struct LNode {
    ElemType data;
    struct LNode *next;
} LNode, *LinkList;

//遍历
Status ListTraverse(LinkList L) {

    L = L->next;
    while (L != NULL) {
        printf("%3d", L->data);
        L = L->next;
    }
    printf("\n");
    return OK;
}



//尾插法(这个有问题)
LinkList CreateList1(LinkList &L) {
    int x;
    L = (LinkList)malloc(sizeof(LNode));
    LinkList j, m = L;
    scanf("%d", &x);
    while (x != 9999) {
        m = (LinkList)malloc(sizeof(LNode));
        m->data = x;
        j->next = m;
        j = m;
        scanf("%d", &x);
    }

    j->next = NULL;
    return L;
}


//这个没问题
LinkList CreateList2(LinkList &L) {
    int x;
    L = (LinkList)malloc(sizeof(LNode));
    LinkList s, r = L;
    scanf("%d", &x);
    while (x != 9999) {
        s = (LinkList)malloc(sizeof(LNode));
        s->data = x;
        r->next = s;
        r = s;
        scanf("%d", &x);
    }
    r->next = NULL;
    return L;
}

int main () {
    LinkList L;
    CreateList1(L);
    ListTraverse(L);

    return 0;

}

//显示结果

img

  • 写回答

3条回答 默认 最新

  • [PE]经典八炮 2022-09-03 12:44
    关注

    你把j换成s,m换成r,看看47行和65行一样?
    另外建议换个智能点的IDE,可以更快找出错误,比如vs

    评论

报告相同问题?

问题事件

  • 修改了问题 9月3日
  • 修改了问题 9月3日
  • 修改了问题 9月3日
  • 修改了问题 9月3日
  • 展开全部

悬赏问题

  • ¥15 人大金仓下载,有人知道怎么解决吗
  • ¥15 一个小问题,本人刚入门,哪位可以help
  • ¥15 python安卓开发
  • ¥15 使用R语言GD包一直不出结果
  • ¥15 计算机微处理器与接口技术相关问题,求解答图片的这个问题,有多少个端口,端口地址和解答问题的方法和思路,不要AI作答
  • ¥15 如何根据一个截图编写对应的HTML代码
  • ¥15 stm32标准库的PID角度环
  • ¥15 ADS已经下载好了,但是DAS下载不了,一直显示这两种情况,有什么办法吗,非常急!
  • ¥100 Excel 点击发送自动跳转outlook邮件
  • ¥15 gis中用栅格计算器或加权总和后图层不显示,值也明显不对