某一个班级有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;
}
运行结果: