某一个班级有4名学生,每个学生有5门课程。分别编写3个函数实现如下要求:
(1)求第一门课程的平均分;
(2)找出有两门以上课程不及格的学生,输出他们的学号和全部课程成绩及平均成绩;
(3)找出平均成绩在90分以上或全部课程成绩在85分以上的学生;
源代码:
#include <stdio.h>
 
//第一门课的平均成绩
double average(int m[4][5])
{
   int i;
   double sum = 0, aver;
   for (i = 0; i < 4; i++)
   {
     sum += m[i][0];
   }
   aver = sum / 4;
   return aver;
}
 
void fail(int m[4][5])
{
   int i,j,n;
   for (i = 0; i < 4; i++)
   {
     n = 0;
     for (j = 0; j < 5; j++)
     {
       if (m[i][j] < 60)
         ++n;
 
       if (n >= 2)
       {
         printf("第%2d个学生%5d%5d%5d%5d%5d\n", i + 1, m[i][0], m[i][1], m[i][2], m[i][3], m[i][4]);
         break;
       }
     }
   }
}
int main()
{
   int i, j;
   int(*point)[5];
   int score[4][5] = {
           {81,90,96,98,99},
           {55,49,66,58,61},
           {71,57,48,62,60},
           {98,87,88,99,99} };
   point = score;
   printf("4个学生5门课成绩:\n\n");
   for (i = 0; i < 4; i++)
   {
     for (j = 0; j < 5; j++)
     {
       printf("%3d", score[i][j]);
     }
     printf("\n");
   }
   printf("\n\n");
 
   //第一门课程的平均分
   double sum = 0, avg;
   avg = average(point);
   printf("第一门课程的平均分:%.1f  ", avg);
   printf("\n\n");
 
   //找出有两门课不及格的学生
  printf("有两门以上课程不及格的学生:\n");
   fail(point);
 
   //平均成绩在90分以上
   printf("\n\n");
   printf("平均成绩在90分以上的学生:\n");
   double summ, aveg;
   for (i = 0; i < 4; i++)
   {
     summ = 0;
     for (j = 0; j < 5; j++)
     {
       summ += score[i][j];
     }
     aveg = summ / 5;
     if (aveg >= 90)
     {
       printf("第%2d 个学生",i+1);
       for (j = 0; j < 5; j++)
         printf("%5d", score[i][j]);
       printf("\n");
     }
   }
 
   //全部课程在85分以上的学生
   for (i = 0; i < 4; i++)
   {
     if (score[i][0] > 85 && score[i][1] > 85 && score[i][2] > 85 && score[i][3] > 85 && score[i][4] > 85)
       printf("\n\n全部课程在85分以上的学生是:第%2d个学生\n\n", i+1);
   }
   return 1;
}运行结果:

    
    
    









