c语言教材-指针习题最后一题

某一个班级有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;

}

运行结果:

 

 

posted @ 2022-04-01 23:06  bobo哥  阅读(127)  评论(0)    收藏  举报