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; }

解释和步骤说明:

  1. 定义和输入学生人数:

    • 使用#define预处理指令定义MAX_STUDENTS为最大学生人数20。
    • 通过scanf函数从键盘输入班级学生人数,并进行合法性检查,确保人数在15到20之间。
  2. 输入学生成绩:

    • 使用一个float类型的数组grades来存储学生的成绩。
    • 使用for循环逐个输入每个学生的成绩,并累加总成绩到sum变量中。
  3. 计算平均成绩:

    • 计算平均成绩并存储在average变量中。
  4. 输出成绩统计结果:

    • 使用printf函数输出总人数、总成绩、平均成绩等统计信息。
  5. 统计高于平均成绩的人数:

    • 使用一个for循环遍历成绩数组,统计高于平均成绩的学生人数,并输出。
  6. 程序结束:

    • 返回0表示程序正常退出。

注意事项:

  • 确保输入合法性:通过条件语句检查输入是否符合要求,以防止不合法的输入导致程序异常。
  • 数据类型匹配:使用%f格式说明符来读取和存储浮点数类型的成绩。
  • 输出格式化:使用.2f格式控制符限制小数点后两位,以提高输出结果的可读性。

这个程序可以根据需要进行扩展,例如增加更多的成绩统计信息或者输入检查功能,以满足实际的学生成绩管理需求。