一个班有10名同学,每名同学都有如下信息:学号,姓名,三门课程的成绩。请编写程序输入全班同学的信息,计算每名同学三门课程的平均成绩,并按照平均成绩排序后输出。(用C语言编程)
时间: 2024-03-06 11:51:32 浏览: 95
好的,以下是C语言的代码实现:
```c
#include <stdio.h>
#include <string.h>
// 定义一个结构体表示学生信息
struct Student {
char id[10]; // 学号
char name[20]; // 姓名
float score1; // 成绩1
float score2; // 成绩2
float score3; // 成绩3
float avgScore; // 平均成绩
};
int main() {
struct Student students[10]; // 定义一个包含10个学生的数组
// 输入每个学生的信息
for (int i = 0; i < 10; i++) {
printf("请输入第%d个学生的学号:", i+1);
scanf("%s", students[i].id);
printf("请输入第%d个学生的姓名:", i+1);
scanf("%s", students[i].name);
printf("请输入第%d个学生的成绩1:", i+1);
scanf("%f", &students[i].score1);
printf("请输入第%d个学生的成绩2:", i+1);
scanf("%f", &students[i].score2);
printf("请输入第%d个学生的成绩3:", i+1);
scanf("%f", &students[i].score3);
// 计算平均成绩
students[i].avgScore = (students[i].score1 + students[i].score2 + students[i].score3) / 3;
}
// 按照平均成绩排序
for (int i = 0; i < 9; i++) {
for (int j = i+1; j < 10; j++) {
if (students[i].avgScore < students[j].avgScore) { // 如果前面的平均成绩比后面的小,则交换两个学生的信息
struct Student temp = students[i];
students[i] = students[j];
students[j] = temp;
}
}
}
// 输出排序后的结果
printf("排序后的结果为:\n");
for (int i = 0; i < 10; i++) {
printf("学号:%s,姓名:%s,平均成绩:%.2f\n", students[i].id, students[i].name, students[i].avgScore);
}
return 0;
}
```
这个程序实现了输入10个学生的信息,计算每个学生的平均成绩,然后按照平均成绩排序并输出。
阅读全文