C语言学生成绩统计代码:从键盘输入一个班(全班人数在15~20之间)学生某门课的成绩
编写一个C语言程序,实现从键盘输入一个班级学生某门课的成绩,并进行统计分析。以下是一个示例代码,详细解释了如何实现这个功能:
c#include <stdio.h>
// 定义最大学生人数
#define MAX_STUDENTS 20
int main() {
int numStudents;
float grades[MAX_STUDENTS];
float sum = 0.0, average;
// 输入班级学生人数,并进行合法性检查
printf("请输入班级学生人数(15-20之间): ");
scanf("%d", &numStudents);
if (numStudents < 15 || numStudents > 20) {
printf("输入人数不合法,必须在15到20之间。\n");
return 1; // 返回非零表示程序异常退出
}
// 输入学生的成绩
printf("请输入%d个学生的成绩(每个成绩之间用空格或换行分隔):\n", numStudents);
for (int i = 0; i < numStudents; ++i) {
scanf("%f", &grades[i]);
sum += grades[i];
}
// 计算平均成绩
average = sum / numStudents;
// 输出成绩统计结果
printf("\n成绩统计结果:\n");
printf("----------------------------\n");
printf("总人数: %d\n", numStudents);
printf("总成绩: %.2f\n", sum);
printf("平均成绩: %.2f\n", average);
// 统计高于平均成绩的人数
int aboveAverageCount = 0;
for (int i = 0; i < numStudents; ++i) {
if (grades[i] > average) {
aboveAverageCount++;
}
}
printf("高于平均成绩的人数: %d\n", aboveAverageCount);
return 0;
}
解释和步骤说明:
定义和输入学生人数:
- 使用
#define
预处理指令定义MAX_STUDENTS
为最大学生人数20。 - 通过
scanf
函数从键盘输入班级学生人数,并进行合法性检查,确保人数在15到20之间。
- 使用
输入学生成绩:
- 使用一个
float
类型的数组grades
来存储学生的成绩。 - 使用
for
循环逐个输入每个学生的成绩,并累加总成绩到sum
变量中。
- 使用一个
计算平均成绩:
- 计算平均成绩并存储在
average
变量中。
- 计算平均成绩并存储在
输出成绩统计结果:
- 使用
printf
函数输出总人数、总成绩、平均成绩等统计信息。
- 使用
统计高于平均成绩的人数:
- 使用一个
for
循环遍历成绩数组,统计高于平均成绩的学生人数,并输出。
- 使用一个
程序结束:
- 返回0表示程序正常退出。
注意事项:
- 确保输入合法性:通过条件语句检查输入是否符合要求,以防止不合法的输入导致程序异常。
- 数据类型匹配:使用
%f
格式说明符来读取和存储浮点数类型的成绩。 - 输出格式化:使用
.2f
格式控制符限制小数点后两位,以提高输出结果的可读性。
这个程序可以根据需要进行扩展,例如增加更多的成绩统计信息或者输入检查功能,以满足实际的学生成绩管理需求。