首页 > 其他 > 详细

bugkExercise 5.5 Calculating average student grades.

时间:2014-12-28 19:28:09      阅读:369      评论:0      收藏:0      [点我收藏+]

从输出结果来看,这个程序是错的。完全不知道什么意思。

 

Exercise 5-5. Write a program that will calculate the average grade for the students in
each of an arbitrary number of classes. the program should read in all the grades for
students in all classes before calculating the averages. Output the student grades
for each class followed by the average for that class.

//Exercise 5.5 Calculating average student grades.
#include <stdio.h>
#include <stdbool.h>
#include <ctype.h>

int main(void)
{
  size_t nclasses = 0;                  // Number classes
  size_t nstudents_max = 0;             // Maximum number of students in a class
  char answer = N;

  printf("How many students are in the largest class? :");
  scanf("%zd", &nstudents_max);
  printf("How many classes are there? :");
  scanf("%zd", &nclasses);
  size_t class = 0;
  size_t student = 0 ;


  int grades[nclasses][nstudents_max];                     // Stores the grades
  size_t students[nclasses];                               // Stores the number of students in each class

  for( class = 0 ; class < nclasses ; ++class)
    {
    printf("Enter the grades for students in class %zd.\n", class + 1);
    students[class] = 0;                                   // Student count within a class
    while(true)
    {
      printf("Enter the integer grade for student %zd: ", students[class] + 1);
      scanf("%d", &grades[class][students[class]]);
      if(++students[class] == nstudents_max)                // Increment and check student count
      {
        printf("Class %zd complete.", class + 1);
        break;
      }
      printf("Any more students in class %zd (Y or N): ", class + 1);
      scanf(" %c", &answer);
      if(toupper(answer) == N)
      break;
    }
  }
  printf("\n");
  for( class = 0 ; class < nclasses ; ++class)
    {
    int class_total = 0;
    printf("Student grades for class %zd are:\n", class + 1);
    for( student = 0 ; student < students[class] ; ++student)
    {
      class_total += grades[class][student];
      if((student + 1) % 6 == 0)
        printf("\n");
      printf("%5d", grades[class][student]);
    }
    printf("\nAverage grade for class %zd is %.2lf\n", class + 1, (double)class_total/students[class]);
  }
    return 0;
}

 

bugkExercise 5.5 Calculating average student grades.

原文:http://www.cnblogs.com/xiaomi5320/p/4190302.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!