小严学Java 2021-01-24 20:40 采纳率: 0%
浏览 13

我就想创建链表并打印出来,但是结果运行出问题了。求大神指点

#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); 
 }
 

  • 写回答

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,
    }
    评论

报告相同问题?

悬赏问题

  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)