在学生基本信息表中,包含了每个学生的学号、姓名和成绩等相关信息。请编写程序,输入每个学生的信息,并按照成绩从低到高的顺序输出每个学生的信息。c语言
时间: 2024-10-07 07:07:08 浏览: 32
1_lower7y7_定义一个包含学生信息(学号_成绩)的顺序表和链表(二选一)_姓名_使其具有如下功能_
5星 · 资源好评率100%
在C语言中,你可以使用结构体来表示学生的基本信息,然后结合数组或者链表来存储多个学生的信息。这里我们假设使用动态内存分配创建一个简单的结构体数组。下面是一个基本的示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义学生信息结构体
typedef struct {
int student_id; // 学号
char name[50]; // 姓名
float score; // 成绩
} Student;
// 按成绩排序函数
int compare_scores(const void *a, const void *b) {
return (*(const Student **)a)->score - (*(const Student **)b)->score;
}
int main() {
// 初始化学生数量
int num_students;
printf("请输入学生人数: ");
scanf("%d", &num_students);
// 动态分配学生数组
Student *students = (Student *)malloc(num_students * sizeof(Student));
for (int i = 0; i < num_students; ++i) {
printf("请输入第%d个学生的学号、姓名和成绩:\n", i + 1);
scanf("%d%s%f", &students[i].student_id, students[i].name, &students[i].score);
}
// 对学生数组按成绩排序
qsort(students, num_students, sizeof(Student), compare_scores);
// 输出排序后的学生信息
printf("学生信息(按照成绩升序排列):\n");
for (int i = 0; i < num_students; ++i) {
printf("学号:%d, 姓名:%s, 成绩:%f\n", students[i].student_id, students[i].name, students[i].score);
}
free(students); // 释放内存
return 0;
}
```
在这个程序中,`qsort`函数用于对数组进行快速排序,`compare_scores`函数是其需要的一个比较函数,用于确定元素之间的顺序。
阅读全文