就是想写俩个链表,直接在main里面写了,然后再用mprint打印,但是结果没有输出来
3条回答 默认 最新
- Kwan的解忧杂货铺 2024-04-16 11:09关注
上午好☀️☀️☀️️
本答案参考ChatGPT-3.5问题:为什么链表的结果没有输出?
回答:
链表结果没有输出可能是以下原因:
-
没有给链表添加数据,或者数据添加错误。
-
打印链表数据时,可能出现了语法错误或逻辑错误。
-
可能没有给头节点进行初始化,导致出现异常。
下面是解决方案:
-
确认链表有没有添加数据或数据添加是否正确,需要检查getnode函数是否正确创建节点并给节点赋值。
-
检查打印链表数据语句是否正确,可用调试工具,如GDB等定位语法或逻辑错误。
-
确认头节点是否初始化,如果没有初始化会导致程序出现异常,可在头节点赋值前,给其初始化为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;
}
解决 无用评论 打赏 举报 -
悬赏问题
- ¥15 程序实在不会写,要秃了
- ¥15 pycharm导入不了自己的包
- ¥15 C#.net通过内网url地址获取文件并下载问题,浏览器postman可以正常下载,用程序不行
- ¥15 本人本科机械,目前研一。没有深度学习基础,目前对研究生课题一片迷茫,请教各位!
- ¥15 关于R语言单因素与多因素线性回归的平均值
- ¥15 服务器清除BIOS之后引导不了
- ¥15 CPLEX用OPL编写的混合整数线性优化问题。
- ¥15 可以用EasyConnect连接实验室内网,但无法连接内网才能访问的服务器,为什么?
- ¥15 前端预览docx文件,文件从后端传送过来。
- ¥15 层次聚类和蛋白质相似度