Wilson_Cc1 2021-12-29 00:18 采纳率: 100%
浏览 18
已结题

关于#xCAEDE#的问题,如何解决?(语言-c语言)

初学,不知如何解决

img

源代码
#include <stdio.h>
#include <stdlib.h>
#pragma warning(disable:4996)

struct student 
{
    char name[20];
    int numeber;
    struct student *next;
};

void getInput(struct student *pointer)
{
    
    printf("请输入姓名与学号\n");
    scanf("%s", pointer->name);
    scanf("%d", pointer->numeber);
}

void creat(struct student **head)
{
    struct student *pointer, *temp;
    pointer = (struct student *)malloc(sizeof(struct student));
    if (pointer == NULL)
    {
        printf("内存分配失败\n");
        exit(1);
    }
    else
        getInput(pointer);
    if (head != NULL)
    {
        temp = *head;
        *head = pointer;
        pointer->next = temp;
    }
    else
    {
        *head = pointer;
        pointer->next = NULL;

    }
}

void print(struct student *head)
{
    struct student *pointer1;
    int count = 1;
    pointer1 = head;
    while (pointer1 != NULL)
    {
        printf("学生%d:\n    姓名:%s\n    学号:%d\n", count, pointer1->name, pointer1->numeber);
        pointer1 = pointer1->next;
        count++;
    }
}


int main()
{
    struct student *head = NULL;
    
    char ch;
    printf("请输入学生的姓名与学号\n");
    creat(&head);
    printf("是否需要打印信息(Y/N)\n");
    do
    {
        ch = getchar();
    } while (ch != 'Y'&&ch != 'N');

    if (ch == 'Y')
    {
        print(head);
    }
     free(head);

    return 0;
}



  • 写回答

3条回答 默认 最新

  • 关注
    scanf("%d", pointer->numeber);  pointer->numeber变量前面少了 & 取变量地址
    改成
    scanf("%d", &pointer->numeber);
    

    你题目的解答代码如下:

    #include <stdio.h>
    #include <stdlib.h>
    #pragma warning(disable:4996)
    struct student
    {
        char name[20];
        int numeber;
        struct student *next;
    };
    void getInput(struct student *pointer)
    {
        printf("请输入姓名与学号\n");
        scanf("%s", pointer->name);
        scanf("%d", &pointer->numeber);  // pointer->numeber 前面要加 &
    }
    void creat(struct student **head)
    {
        struct student *pointer, *temp;
        pointer = (struct student *)malloc(sizeof(struct student));
        if (pointer == NULL)
        {
            printf("内存分配失败\n");
            exit(1);
        }
        else
            getInput(pointer);
        if (head != NULL)
        {
            temp = *head;
            *head = pointer;
            pointer->next = temp;
        }
        else
        {
            *head = pointer;
            pointer->next = NULL;
        }
    }
    void print(struct student *head)
    {
        struct student *pointer1;
        int count = 1;
        pointer1 = head;
        while (pointer1 != NULL)
        {
            printf("学生%d:\n    姓名:%s\n    学号:%d\n", count, pointer1->name, pointer1->numeber);
            pointer1 = pointer1->next;
            count++;
        }
    }
    
    int main()
    {
        struct student *head = NULL;
        char ch;
        printf("请输入学生的姓名与学号\n");
        creat(&head);
        printf("是否需要打印信息(Y/N)\n");
        do
        {
            ch = getchar();
        } while (ch != 'Y'&&ch != 'N');
        if (ch == 'Y')
        {
            print(head);
        }
         free(head);
        return 0;
    }
    

    img

    如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 1月6日
  • 已采纳回答 12月29日
  • 创建了问题 12月29日

悬赏问题

  • ¥15 2024-五一综合模拟赛
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭