易百教程

编写程序来计算班级平均成绩

编写一个程序来计算每个任意数量的班级中学生的平均成绩。输出每个班级的学生成绩,然后输出该班级的平均成绩。

参考代码

#include <stdio.h>
#include <stdbool.h>
#include <ctype.h>

int main(void)
{
  const size_t cCount = 5;  // 班级数量
  const size_t sCount = 7; // 班级中的学生人数
  char answer = 'N';

  int grades[cCount][sCount];  // Stores the grades
  size_t students[cCount];  // Stores the number of students in each class

  for (size_t i = 0; i < cCount; ++i)
  {
    printf("输入学生的成绩 %d.\n", i + 1);
    students[i] = 0; // Student count within a class
    while (true)
    {
      printf("输入学生的等级 %d: ", students[i] + 1);
      scanf("%d", &grades[i][students[i]]);
      if (++students[i] == sCount)// Increment and check student count
      {
        printf("班级 %zd 学生信息输入完成 ", i + 1);
        break;
      }
      printf("还有更多的学生 %zd ?(Y 或 N): ", i + 1);
      scanf(" %c", &answer);
      if (toupper(answer) == 'N')
        break;
    }
  }
  printf("\n");
  for (size_t i = 0; i < cCount; ++i)
  {
    int class_total = 0;
    printf("班级 %d 的学生成绩是:\n", class_total + 1);
    for (size_t student = 0; student < students[i]; ++student)
    {
      class_total += grades[i][student];
      if ((student + 1) % 6 == 0)
        printf("\n");
      printf("%5d", grades[i][student]);
    }
    printf("\n班级 %zd 的平均成绩是:%.2lf\n", i + 1, (double)class_total / students[i]);
  }
  return 0;
}

执行上面示例代码,得到以下结果:

hema@yiibai:~/book$ gcc main.c
hema@yiibai:~/book$ ./a.out
输入学生的成绩 1.
输入学生的等级 1: 90
还有更多的学生 1 ?(Y 或 N): y
输入学生的等级 2: 89
还有更多的学生 1 ?(Y 或 N): y
输入学生的等级 3: 93
还有更多的学生 1 ?(Y 或 N): y
输入学生的等级 4: 95
还有更多的学生 1 ?(Y 或 N): n
输入学生的成绩 2.
输入学生的等级 1: 98