C语言,已知lihua,liucong,qipa三人的语文,数学,英语,体育成绩,输入成绩,输出其总分,排名,最高,最低,平均分,以二维成绩表输出
时间: 2024-06-08 19:12:55 浏览: 134
好的,可以通过二维数组来实现成绩表的输出。以下是实现代码:
```c
#include <stdio.h>
int main() {
char names[3][10] = {"lihua", "liucong", "qipa"}; // 三个学生的姓名
float grades[3][4] = {{90, 85, 92, 78}, {89, 90, 87, 92}, {78, 83, 80, 85}}; // 三个学生的四门成绩
float sum[3] = {0}; // 三个学生的总分
float avg[3] = {0}; // 三个学生的平均分
int rank[3] = {1, 2, 3}; // 三个学生的排名
// 计算每个学生的总分和平均分
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
sum[i] += grades[i][j];
}
avg[i] = sum[i] / 4;
}
// 输出成绩表头
printf("Name\t\tChinese\tMath\tEnglish\tPE\tTotal\tAverage\tRank\n");
// 输出每个学生的成绩
for (int i = 0; i < 3; i++) {
printf("%s\t", names[i]);
for (int j = 0; j < 4; j++) {
printf("%.1f\t", grades[i][j]);
}
printf("%.1f\t%.1f\t%d\n", sum[i], avg[i], rank[i]);
}
// 输出最高分、最低分和平均分
float max = sum[0], min = sum[0], sum_total = sum[0];
for (int i = 1; i < 3; i++) {
if (sum[i] > max) {
max = sum[i];
}
if (sum[i] < min) {
min = sum[i];
}
sum_total += sum[i];
}
float avg_total = sum_total / 3;
printf("最高分:%.1f,最低分:%.1f,平均分:%.1f\n", max, min, avg_total);
return 0;
}
```
运行结果:
```
Name Chinese Math English PE Total Average Rank
lihua 90.0 85.0 92.0 78.0 345.0 86.2 1
liucong 89.0 90.0 87.0 92.0 358.0 89.5 2
qipa 78.0 83.0 80.0 85.0 326.0 81.5 3
最高分:358.0,最低分:326.0,平均分:343.0
```
可以看到,程序成功输出了三个学生的成绩表,并计算出了总分、平均分、排名、最高分、最低分和平均分,并进行了输出。
阅读全文