C语言学生成绩管理--链表(为了对 班级学生的基本信息和C语言程序设计成绩进行管理,利用结构体变量记录每个学生的学号、姓名和C程序设计成绩。先根据用户输入的人数建立 单向链表来存放学生的信息,并且输出前)
时间: 2024-03-03 14:48:09 浏览: 92
好的,我明白了你的问题。下面是一个基于链表的 C 语言学生成绩管理系统的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 学生信息结构体
typedef struct student {
int id;
char name[20];
float score;
struct student *next;
} student_t;
// 创建链表
student_t *create_list(int n) {
student_t *head, *p, *q;
int i;
head = (student_t *)malloc(sizeof(student_t));
if (head == NULL) {
printf("Memory allocation failed.\n");
exit(1);
}
head->next = NULL;
q = head;
for (i = 0; i < n; i++) {
p = (student_t *)malloc(sizeof(student_t));
if (p == NULL) {
printf("Memory allocation failed.\n");
exit(1);
}
printf("Input student information (id name score): ");
scanf("%d%s%f", &p->id, p->name, &p->score);
p->next = NULL;
q->next = p;
q = p;
}
return head;
}
// 输出链表
void print_list(student_t *head) {
student_t *p;
printf("ID\tName\tScore\n");
for (p = head->next; p != NULL; p = p->next) {
printf("%d\t%s\t%.2f\n", p->id, p->name, p->score);
}
}
// 主函数
int main() {
int n;
student_t *head;
printf("Input the number of students: ");
scanf("%d", &n);
head = create_list(n);
print_list(head);
return 0;
}
```
这是一个简单的 C 语言学生成绩管理系统的示例代码,可以根据用户输入的人数建立单向链表来存放学生的信息,并且输出每个学生的学号、姓名和成绩。你可以根据这个代码进行修改和扩展,以满足你的具体需求。
阅读全文