c语言编程编写程序,输入n个学生的学号和成绩(有1位小数),按成绩从高到低排序输出,n 小于50,学号小于10位。
时间: 2023-06-12 18:07:31 浏览: 157
实现输入成绩,输出成绩等级
以下是使用冒泡排序算法实现的 C 语言程序,可以实现输入 n 个学生的学号和成绩,按成绩从高到低排序输出。
```c
#include <stdio.h>
#define MAX_N 50
#define MAX_ID_LEN 10
struct student {
char id[MAX_ID_LEN + 1];
float score;
};
int main() {
int n;
struct student students[MAX_N];
// 输入学生信息
printf("请输入学生个数 n:");
scanf("%d", &n);
printf("请依次输入每个学生的学号和成绩,以空格分隔:\n");
for (int i = 0; i < n; i++) {
scanf("%s%f", students[i].id, &students[i].score);
}
// 冒泡排序
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - 1 - i; j++) {
if (students[j].score < students[j + 1].score) {
// 交换学生信息
struct student tmp = students[j];
students[j] = students[j + 1];
students[j + 1] = tmp;
}
}
}
// 输出排序结果
printf("按成绩从高到低排序结果如下:\n");
for (int i = 0; i < n; i++) {
printf("%s\t%.1f\n", students[i].id, students[i].score);
}
return 0;
}
```
程序中定义了一个结构体 `student`,包含学生的学号和成绩。使用数组 `students` 存储 n 个学生的信息。输入学生信息后,使用冒泡排序算法按成绩从高到低排序,最后输出排序结果。
阅读全文