C语言学生成绩统计:计算总分和平均分
C语言学生成绩统计:计算总分和平均分
某学习小组有四名同学,学习了五门课程,分别是语文、数学、英语、物理和化学。他们的成绩如下表所示:
| 姓名 | 语文 | 数学 | 英语 | 物理 | 化学 | |---|---|---|---|---|---| | 张三 | 85 | 92 | 88 | 79 | 90 | | 李四 | 91 | 87 | 89 | 81 | 84 | | 王五 | 86 | 90 | 92 | 83 | 86 | | 赵六 | 90 | 94 | 83 | 88 | 95 |
请编写程序,计算每个同学的总分和平均分,并输出以下统计信息:
姓名 语文 数学 英语 物理 化学 总分 平均分
张三 85 92 88 79 90 434 86.8
李四 91 87 89 81 84 432 86.4
王五 86 90 92 83 86 437 87.4
赵六 90 94 83 88 95 450 90.0
提示:
- 可以使用二维数组存储学生的成绩,即
grades[4][5],其中第一维表示学生编号(从0开始),第二维表示课程编号(从0开始)。 - 计算每个同学的总分和平均分时,可以使用循环来累加各门课程的成绩。
- 输出时可以使用制表符
\t来控制格式,例如printf('%s\t%d\t%d\t%d\t%d\t%d\t%d\t%.1f)', name[i], grades[i][0], grades[i][1], grades[i][2], grades[i][3], grades[i][4], total[i], avg[i]);。
以下是完整的代码实现:
#include <stdio.h>
int main(){
int grades[4][5] = {
{85, 92, 88, 79, 90},
{91, 87, 89, 81, 84},
{86, 90, 92, 83, 86},
{90, 94, 83, 88, 95}
};
char *name[4] = {'张三', '李四', '王五', '赵六'};
int i, j, total[4];
float avg[4];
// 计算每个同学的总分和平均分
for (i = 0; i < 4; i++) {
total[i] = 0;
for (j = 0; j < 5; j++) {
total[i] += grades[i][j];
}
avg[i] = (float) total[i] / 5;
}
// 输出统计信息
printf('姓名\t语文\t数学\t英语\t物理\t化学\t总分\t平均分\n');
for (i = 0; i < 4; i++) {
printf('%s\t', name[i]);
for (j = 0; j < 5; j++) {
printf('%d\t', grades[i][j]);
}
printf('%d\t%.1f\n', total[i], avg[i]);
}
return 0;
}
代码解析:
- 首先定义一个二维数组
grades[4][5]来存储学生的成绩,其中第一维表示学生编号,第二维表示课程编号。 - 定义一个字符数组指针
name[4]来存储每个学生的姓名。 - 然后使用两个嵌套循环来计算每个学生的总分和平均分。外层循环遍历每个学生,内层循环遍历每门课程。
- 最后使用
printf()函数输出每个学生的统计信息,使用\t制表符来控制格式。
注意:
- 以上代码只是示例,可以根据实际情况进行修改和扩展。
- 可以考虑使用函数来封装计算总分和平均分的代码,提高代码的可读性和可维护性。
- 可以使用更高级的数据结构,例如结构体或联合体,来存储学生信息,使代码更简洁易懂。
- 可以使用文件读写来处理大量数据,避免每次都需要手动输入数据。
原文地址: https://www.cveoy.top/t/topic/kyCm 著作权归作者所有。请勿转载和采集!