有3个学生,包括学号、姓名、分数,定义结构体类型数组存学生信息,使用链表输入输出学生信息。
时间: 2023-12-10 22:36:04 浏览: 144
以下是使用链表输入输出3个学生信息的C语言代码,其中包括学号、姓名、分数等信息:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义学生结构体
struct student {
int id;
char name[20];
float score;
struct student *next;
};
int main() {
// 定义3个学生结构体
struct student *head, *p, *q;
int i;
float max_score = 0;
// 输入3个学生信息
head = NULL;
for (i = 0; i < 3; i++) {
p = (struct student *)malloc(sizeof(struct student));
printf("请输入第%d个学生的学号、姓名、分数:", i+1);
scanf("%d %s %f", &p->id, p->name, &p->score);
p->next = NULL;
if (head == NULL) {
head = p;
} else {
q->next = p;
}
q = p;
if (p->score > max_score) {
max_score = p->score;
}
}
// 输出总分最高的学生信息
printf("总分最高的学生信息为:\n");
for (p = head; p != NULL; p = p->next) {
if (p->score == max_score) {
printf("学号:%d,姓名:%s,分数:%f\n", p->id, p->name, p->score);
}
}
// 输出有一科或一科以上不及格的学生信息
printf("有一科或一科以上不及格的学生信息为:\n");
for (p = head; p != NULL; p = p->next) {
if (p->score < 60) {
printf("学号:%d,姓名:%s,分数:%f\n", p->id, p->name, p->score);
}
}
// 释放内存
for (p = head; p != NULL; p = q) {
q = p->next;
free(p);
}
return 0;
}
```
阅读全文