快考试了,自己写了个程序,走过路过的大神请指导一下,很急,谢谢!
有10个学生,输入学生信息,以及3门课成绩,把平均分最高的同学的信息输出,统计有两门或两门以上不及格的人数#include<stdio.h>
#define N 2
struct score{
float math;
float english;
float chinese;
};
struct student{
int ID;
char name[20];
int age;
struct score lesson;
};
void input(struct student stu[],int n)
{
int i;
for(i=0;i<2;i++)
scanf("%d%s%d%f%f%f",&stu[i].ID,stu[i].name,&stu[i].age,&stu[i].lesson.math,&stu[i].lesson.english,&stu[i].lesson.chinese);
}
void highscore(struct student stu[],int n)
{
float aver[2],sum[2],max;
int i,j;
for(i=0;i<2;i++){
sum[i]=stu[i].lesson .math+stu[i].lesson .english+stu[i].lesson .chinese;
aver[i]=sum[i]/3;
}
for(i=0;i<2;i++){
printf("第%d位学生的平均分为:%f\n",i+1,aver[i]);
}
max=aver[0];
for(i=0;i<2;i++){
if(aver[i]>max){
max=aver[i];
j=i;}
}
}
printf("平均分成绩最高的学生信息:\n");//有错,不知怎么改
printf("%d",stu[j].ID);
printf("%s",stu[j].name);
printf("%d",stu[j].age);
printf("%f",stu[j].lesson.math);
printf("%f",stu[j].lesson.english);
printf("%f",stu[j].lesson.chinese);
}
void search(struct student stu[],int n)
{
int i,j=0,sum=0;
for(i=0;i<2;i++){
if(stu[i].lesson.math<60)
sum++;
if(stu[i].lesson.english<60)
sum++;
if(stu[i].lesson.chinese<60)
sum++;
}
if(sum>=2)
j++;
printf("不合格的人数为%d",j);//运行结果有错
}
int main()
{
struct student stu[N];
printf("学号 姓名 年龄 3门课的成绩:\n");
input(stu,N);
highscore(stu,N);
search(stu,N);
return 0;
}