要求使用C语言。学生人数n由scanf输入 输出学成成绩按从高到底排序。输出参考如下: 编号 + 姓名 + +语文 + + 数学 + 英语 +总分 1 + + + +b + + + + 100 + + 100 +
时间: 2023-11-17 20:08:10 浏览: 107
以下是使用C语言实现学生成绩排序的代码,其中包括了输入学生信息、计算总分、排序并输出的过程:
```c
#include <stdio.h>
#include <string.h>
#define MAX_N 100 // 最大学生数
struct Student {
char name[20]; // 姓名
int chinese; // 语文成绩
int math; // 数学成绩
int english; // 英语成绩
int total; // 总分
};
int main() {
int n; // 学生数
struct Student students[MAX_N]; // 学生数组
// 输入学生信息
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%s %d %d %d", students[i].name, &students[i].chinese, &students[i].math, &students[i].english);
students[i].total = students[i].chinese + students[i].math + students[i].english;
}
// 冒泡排序
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (students[j].total < students[j + 1].total) {
struct Student temp = students[j];
students[j] = students[j + 1];
students[j + 1] = temp;
}
}
}
// 输出表头
printf("编号\t姓名\t语文\t数学\t英语\t总分\n");
// 输出学生信息
for (int i = 0; i < n; i++) {
printf("%d\t%s\t%d\t%d\t%d\t%d\n", i + 1, students[i].name, students[i].chinese, students[i].math, students[i].english, students[i].total);
}
return 0;
}
```
阅读全文