请编写一个c语言程序统计12个学生的三科分数并从高到低排名
时间: 2023-06-05 14:05:18 浏览: 88
用C语言实现的学生成绩管理程序
5星 · 资源好评率100%
好的,以下是相应的C语言程序:
```c
#include <stdio.h>
int main() {
int score[12][3]; // 保存12个学生的三科分数
int sum[12]; // 保存每个学生的总分
int rank[12]; // 保存学生排名
// 读取成绩
for(int i=0; i<12; i++) {
printf("请输入第%d个学生的三科分数:", i+1);
scanf("%d%d%d", &score[i][0], &score[i][1], &score[i][2]);
sum[i] = score[i][0] + score[i][1] + score[i][2];
rank[i] = i; // 初始化排名为学生的编号
}
// 按总分从高到低排序
for(int i=0; i<11; i++) {
for(int j=0; j<11-i; j++) {
if(sum[j] < sum[j+1]) {
// 交换总分
int t = sum[j];
sum[j] = sum[j+1];
sum[j+1] = t;
// 交换排名
t = rank[j];
rank[j] = rank[j+1];
rank[j+1] = t;
}
}
}
// 输出排序结果
printf("排名 学生编号 总分\n");
for(int i=0; i<12; i++) {
printf("%2d %2d %3d\n", i+1, rank[i]+1, sum[i]);
}
return 0;
}
```
可以看到,这个程序通过一个二维数组 `score` 来保存每个学生的三个科目的成绩,然后计算每个学生的总分并保存在数组 `sum` 中。最后,按照总分从高到低排序,并输出排名和对应的学生编号和总分。
阅读全文