编写一个程序,输入N个学生的学号,成绩。把成绩存入结构数组中,按成绩从低到高排序并输出排列后学生的信息
时间: 2024-05-14 14:16:35 浏览: 145
编写一个程序用来对学生评定成绩
以下是一个示例程序,可以实现你的需求:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_NUM_STUDENTS 100 // 最多支持的学生数量
// 学生结构体
typedef struct {
int id; // 学号
int score; // 成绩
} Student;
// 比较函数,用于 qsort 排序
int cmp(const void *a, const void *b) {
return ((Student *)a)->score - ((Student *)b)->score;
}
int main() {
int n; // 学生数量
Student students[MAX_NUM_STUDENTS]; // 学生数组
// 读入学生数量
printf("请输入学生数量:");
scanf("%d", &n);
// 读入学生成绩
printf("请输入学生学号和成绩:\n");
for (int i = 0; i < n; ++i) {
scanf("%d %d", &students[i].id, &students[i].score);
}
// 排序
qsort(students, n, sizeof(Student), cmp);
// 输出排序后的结果
printf("按成绩从低到高排序的学生信息:\n");
for (int i = 0; i < n; ++i) {
printf("学号:%d,成绩:%d\n", students[i].id, students[i].score);
}
return 0;
}
```
程序中利用 `qsort` 函数对学生数组进行排序,排序规则由 `cmp` 函数中实现。最后按顺序输出排序后的学生信息。
阅读全文