用C语言编写以下程序:由键盘任意输入5个学生的姓名、学号、以及每一个学生的4门功课的成绩,分别计算他们的总分和均分,并将此表按总分的高低排序
时间: 2023-06-07 15:12:09 浏览: 99
接收从键盘输入某班学生的学号、姓名、成绩,对学 生的成绩进行排序.zip
5星 · 资源好评率100%
Sure, 我可以为您提供帮助!以下是一个简单的C语言程序,它可以计算5个学生的总分和平均分,并按总分排序,您可以参考一下:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct Student {
char name[50];
int id;
float grade[4];
float total;
float avg;
};
int main() {
struct Student students[5];
int i, j;
//输入学生信息
for(i = 0; i < 5; i++) {
printf("请输入第%d个学生的姓名: ", i+1);
scanf("%s", students[i].name);
printf("请输入第%d个学生的学号: ", i+1);
scanf("%d", &students[i].id);
float total = 0;
for(j = 0; j < 4; j++) {
printf("请输入第%d个学生的第%d门功课成绩: ", i+1, j+1);
scanf("%f", &students[i].grade[j]);
total += students[i].grade[j];
}
students[i].total = total;
students[i].avg = total/4.0;
}
//排序
for(i = 0; i < 4; i++) {
for(j = i+1; j < 5; j++) {
if(students[i].total < students[j].total) {
struct Student temp = students[i];
students[i] = students[j];
students[j] = temp;
}
}
}
//打印结果
printf("学生排名结果如下:\n");
printf("姓名\t\t学号\t\t总分\t\t平均分\n");
for(i = 0; i < 5; i++) {
printf("%s\t\t%d\t\t%.2f\t\t%.2f\n", students[i].name, students[i].id, students[i].total, students[i].avg);
}
return 0;
}
```
希望这个程序对您有所帮助!如果您有其他问题,请随时问我。
阅读全文