用C语言编写以下题目:创建一个结构体数组,数组名为student,成员包含学号,姓名,成绩(数据类型自己设定)。写一个程序,要求可以循环的从终端输入学生信息,当输入一行‘#’ 时表示完成输入。完成输入后自动打印出所输入的学生信息,打印结果按学生成绩从低到高打印。
时间: 2024-04-15 08:32:16 浏览: 335
C语言利用结构体数组实现学生成绩管理系统
5星 · 资源好评率100%
这是一个使用C语言编写的程序,可以创建一个结构体数组来存储学生信息,并按照学生成绩从低到高的顺序打印出所输入的学生信息。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENTS 100
// 定义学生结构体
struct Student {
int studentID;
char name[50];
float score;
};
int compare(const void *a, const void *b) {
const struct Student *s1 = (const struct Student *)a;
const struct Student *s2 = (const struct Student *)b;
return (s1->score - s2->score);
}
int main() {
struct Student students[MAX_STUDENTS];
int count = 0;
// 循环输入学生信息
while (1) {
printf("请输入学生信息(学号 姓名 成绩):");
char input[100];
fgets(input, sizeof(input), stdin);
// 判断是否输入结束
if (input[0] == '#') {
break;
}
// 解析学生信息
struct Student student;
sscanf(input, "%d %s %f", &student.studentID, student.name, &student.score);
// 将学生信息添加到数组中
students[count] = student;
count++;
}
// 按学生成绩从低到高排序
qsort(students, count, sizeof(struct Student), compare);
// 打印学生信息
for (int i = 0; i < count; i++) {
printf("学号:%d,姓名:%s,成绩:%.2f\n", students[i].studentID, students[i].name, students[i].score);
}
return 0;
}
```
这个程序会循环从终端输入学生信息,当输入一行`#`时表示完成输入。完成输入后,会按学生成绩从低到高的顺序打印出所输入的学生信息。请注意,程序中使用了`qsort`函数来进行排序,需要包含头文件`stdlib.h`。
阅读全文