写一个程序,定义以下结构类型,调用函数创建一个动态链表,并且输出该链表。 struct Student { int num; char name[20]; float score[3...

这是一个可以用来创建动态链表、插入节点、打印链表的程序示例:

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

// 定义结构体类型 struct Student { int num; char name[20]; float score[3]; struct Student *next; // 指向下一个节点的指针 };

// 定义创建动态链表的函数 struct Student *create_list(void) { struct Student *head = NULL; // 初始化头指针为 NULL struct Student *p; // 定义一个指向结构体类型的指针 int num; char name[20]; float score[3];

// 提示用户输入学生信息 printf("请输入学生信息(学号 姓名 成绩1 成绩2 成绩3):\n"); // 使用 scanf 函数从标准输入中读取学生信息 while (scanf("%d%s%f%f%f", &num, name, &score[0], &score[1], &score[2]) == 5) { // 动态分配内存空间 p = (struct Student*)malloc(sizeof(struct Student)); if (p == NULL) { // 判断内存分配是否成功 printf("分配内存空间失败\n"); exit(1); }

// 将学生信息存储到动态分配的内存中
p->num = num;
strcpy(p->name, name);
memcpy(p->score, score, sizeof(score));
p->next = NULL;  // 初始化指向下一个节点的指针为 NULL

// 将新节点插入到链表中
if (head == NULL) {  // 如果是第一个节点
  head = p;
} else {  // 如果不是
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值