#include<stdio.h>
#include<stdlib.h>
typedef struct node
{
int id;
int score;
struct node *next;
}LinkList;
LinkList *create(){
LinkList *head ,*p;
int id;
int score;
p=(LinkList *)malloc(sizeof(LinkList));
head=p;
p->next=NULL;
printf("请输入学号和成绩:\n");
scanf("%d%d",&id,&score);
while(id!=0){
p->id=id;
p->score=score;
p->next=NULL;
scanf("%d%d",&id,&score);
}
return head;
}
void print(LinkList *head){
LinkList *p;
p=head->next;
while(p!=NULL)
printf("%d%d",p->id,p->score);
p=p->next;
}
main(){
LinkList *head;
create();
print(head);
}
我就想创建链表并打印出来,但是结果运行出问题了。求大神指点
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 泡视界 2021-01-25 10:40关注
凡写了注释的行,是改动了的行。
#include<stdio.h> #include<stdlib.h> typedef struct node { int id; int score; struct node* next; }LinkList; LinkList* create() { LinkList* head, * p; int id; int score; p = (LinkList*)malloc(sizeof(LinkList)); head = p; p->next = NULL; printf("请输入学号和成绩:\n"); scanf_s("%d %d", &id, &score); //%d%d改为%d %d,输入的时候两个书中间加一个空格 while (id != 0) { p->id = id; p->score = score; p->next = NULL; scanf_s("%d %d", &id, &score); //同上%d%d改为%d %d } return head; } void print(LinkList* head) { LinkList* p; p = head; while (p != NULL) { //按照create()的写法,头节点head是有数据的,因此头节点也需要打印 printf("%d %d", p->id, p->score); p = p->next; //并且p==NULL时,不应该再p = p->next,因此这句放到循环中 } //循环 } int main() { //main函数也需要返回类型,加int LinkList* head = nullptr; //指针初始化一下 head = create(); //按create()的写法,将返回头节点,因此head = create(); print(head); return 0; //为main 返回一个0, }
解决 无用评论 打赏 举报
悬赏问题
- ¥15 react-diff-viewer组件,如何解决数据量过大卡顿问题
- ¥20 遥感植被物候指数空间分布图制作
- ¥15 安装了xlrd库但是import不了…
- ¥20 Github上传代码没有contribution和activity记录
- ¥20 SNETCracker
- ¥15 数学建模大赛交通流量控制
- ¥15 为什么我安装了open3d但是在调用的时候没有报错但是什么都没有发生呢
- ¥50 paddleocr最下面一行似乎无法识别
- ¥15 求某类社交网络数据集
- ¥15 靶向捕获探针方法/参考文献