本题使用求平均分函数、分数查找函数、二维数组及其指针方法完成。一个班有5个学生,4门课程:
① 求每门课程的平均分,并输出;
② 找出有两门以上课程不及格的学生,输出其学号、姓名和全部课程成绩及平均成绩;
③ 找出每门课程成绩均在85分以上的学生,输出其学号、姓名和全部课程成绩及平均成绩。
提示:用二维数组存放学生和课程,直接初始化二维数组以简化调试(即不使用scanf语句)。
学生成绩的测试数据如下:
stuNo name math eng phys chem
3001 Zhang 82 78 88 93
3002 Wang 46 68 62 57
3003 Li 92 86 85 87
3004 Sun 52 77 55 47
3005 Zhao 58 90 85 77
#include<stdio.h>
struct student{
int num;
char name[20];
float score[4];
float average;
float total;
};
struct student s[]{
{3001,Zhang,82,78,88,93},
{3002,Wang,46,68,62,57},
{3003,Li,92,86,85,87},
{3004,Sun,52,77,55,47},
{3005,Zhao,58,90,85,77}
};
void average(struct student s[],int n){
int i,j;
float sum;
for(i=0;i<5;i++){
sum=0;
for(j=0;j<4;j++){
sum+=s[i].score[j];
}
s[i].total=sum;
s[i].aver=sum/4;
}
}
```