竹叶风轻敲 2024-04-15 17:35 采纳率: 65.2%
浏览 6
已结题

没有报错链表结果没有输出

img


就是想写俩个链表,直接在main里面写了,然后再用mprint打印,但是结果没有输出来

  • 写回答

3条回答 默认 最新

  • Kwan的解忧杂货铺 2024-04-16 11:09
    关注

    上午好☀️☀️☀️️
    本答案参考ChatGPT-3.5

    问题:为什么链表的结果没有输出?

    回答:

    链表结果没有输出可能是以下原因:

    1. 没有给链表添加数据,或者数据添加错误。

    2. 打印链表数据时,可能出现了语法错误或逻辑错误。

    3. 可能没有给头节点进行初始化,导致出现异常。

    下面是解决方案:

    1. 确认链表有没有添加数据或数据添加是否正确,需要检查getnode函数是否正确创建节点并给节点赋值。

    2. 检查打印链表数据语句是否正确,可用调试工具,如GDB等定位语法或逻辑错误。

    3. 确认头节点是否初始化,如果没有初始化会导致程序出现异常,可在头节点赋值前,给其初始化为NULL。

    修改后的代码:

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

    struct node{ int data; struct node*next; };

    struct node* getnode(int data){ struct nodetemp=(struct node)malloc(sizeof(struct node)); temp->next=NULL; temp->data=data; return temp; }

    void mprint(struct nodehead){ struct nodetemp=head; while(temp!=NULL){ printf("%d ",temp->data); temp=temp->next; } }

    int main(){ struct node*head1=NULL,head2=NULL; struct nodetemp1,*temp2; int i,j;

    // 给链表1添加数据(0~4)
    for(i=0;i<5;i++){
        temp1=getnode(i);
        if(head1==NULL){
            head1=temp1;
        }
        else{
            temp1->next=head1;
            head1=temp1;
        }
    }
    
    // 给链表2添加数据(3~8)
    for(j=3;j<6;j++){
        temp2=getnode(j);
        if(head2==NULL){
            head2=temp2;
        }
        else{
            temp2->next=head2;
            head2=temp2;
        }
    }
    
    // 打印链表数据
    mprint(head1);
    printf("\n");
    mprint(head2);
    
    return 0;
    

    }

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月22日
  • 创建了问题 4月15日

悬赏问题

  • ¥15 程序实在不会写,要秃了
  • ¥15 pycharm导入不了自己的包
  • ¥15 C#.net通过内网url地址获取文件并下载问题,浏览器postman可以正常下载,用程序不行
  • ¥15 本人本科机械,目前研一。没有深度学习基础,目前对研究生课题一片迷茫,请教各位!
  • ¥15 关于R语言单因素与多因素线性回归的平均值
  • ¥15 服务器清除BIOS之后引导不了
  • ¥15 CPLEX用OPL编写的混合整数线性优化问题。
  • ¥15 可以用EasyConnect连接实验室内网,但无法连接内网才能访问的服务器,为什么?
  • ¥15 前端预览docx文件,文件从后端传送过来。
  • ¥15 层次聚类和蛋白质相似度