数据结构 c语言 谢谢大佬帮忙找找问题谢谢。。。。。。。

实验内容

 设一个班有10个学生,每个学生有学号,以及数学、物理、英语、语文、体育5门课的成绩信息。分别编写3个函数以实现以下3个要求:

(1)求数学的平均成绩。

(2)对于有两门以上课程不及格的学生,输出他们的学号、各门课成绩及平均成绩。

(3)输出成绩优良的学生(平均成绩在85分以上或全部成绩都在80分以上)的学号、各门课成绩和平均成绩。

【输入形式】

 输入数据共有10行,每行有6个数据,分别表示学生学号,数学、物理、英语、语文和体育成绩。学号不超过15位,成绩在0~100之间。

【输出形式】

第一行输出数学的平均成绩(保留两位小数);

接下来n行按输入顺序,输出符合两门以上课程不及格的学生,并输出他们的学号、各门课成绩及平均成绩(保留两位小数);

接下来m行按输入顺序,输出平均成绩≥85分或全部成绩≥80分的学生,输出格式同上。

 ![图片说明](https://img-ask.csdn.net/upload/202002/25/1582622746_615007.png)

#include

#define N 10

struct student

{

 char num[20];
double math;
double physics;
double English;
double chinese;
double PE;
double average;

}stu[N];

void averagemath(struct student stu[N])

{

    float averagemath=0;
int i;
for(i=0;i<N;i++)
averagemath=averagemath+stu[i].math;
averagemath=averagemath/N;
printf("%.2lf\n",averagemath);

}

void fail(struct student stu[N])

{

int i,j;
for(i=0;i<N;i++)
{
    j=0;
    if(stu[i].math<60) j++;
    if(stu[i].physics<60) j++;
    if(stu[i].English<60) j++;
    if(stu[i].chinese<60) j++;
    if(stu[i].PE<60) j++;
    if(j>2)
    printf("%s %.2lf %.2lf %.2lf %.2lf %.2lf %.2lf\n",stu[i].num,stu[i].math,stu[i].physics,stu[i].English,stu[i].chinese,stu[i].PE,stu[i].average);
}

}

void good(struct student stu[N])

{

int i,j;
for(i=0;i<N;i++)
{
    j=0;
    if(stu[i].math>80) j++;
    if(stu[i].physics>80) j++;
    if(stu[i].English>80) j++;
    if(stu[i].chinese>80) j++;
    if(stu[i].PE>80) j++;
    if(j==5||stu[i].average>85)
    printf("%s %.2lf %.2lf %.2lf %.2lf %.2lf %.2lf\n",stu[i].num,stu[i].math,stu[i].physics,stu[i].English,stu[i].chinese,stu[i].PE,stu[i].average);
}

}

int main(void)

{

int i;
for(i=0;i<N;i++)
{
    scanf("%s",stu[i].num);
    scanf("%lf",&stu[i].math);
    scanf("%lf",&stu[i].physics);
    scanf("%lf",&stu[i].English);
    scanf("%lf",&stu[i].chinese);
    scanf("%lf",&stu[i].PE);
    stu[i].average=(stu[i].math+stu[i].physics+stu[i].English+stu[i].chinese+stu[i].PE)/5;
}
averagemath(stu);
fail(stu);
good(stu);
return 0;

}

问一下上面有什么问题???

第三个函数需要的是>=,你没有判断=
第二个函数 两门以上,包不包括两门?这个有点含糊

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^