老师让写了一个题,写了一段代码,但是不对 求改正!
有5个学生,每个学生的数据包括学号(int)、姓名(char [10])、3门课的成绩(double[3]),从键盘任意输入5个学生数据,要求输出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数)。
(要求用input函数输入5个学生数据;用average函数求总平均分;用max函数找出最高分的学生数据;总平均分和最高分学生的数据都在主函数中输出。)
#include <stdio.h>
double avr(struct stu []);
void input(struct stu []);
double max(struct stu []);
struct stu
{
int num;
char name[10];
double score[3];
};
int main()
{
struct stu s[5];
input(s);
printf("%lf\n",avr(s));
return 0;
}
void input(struct stu s[])
{
int i,j;
for(i=0;i<5;i++)
{
printf("请输入第%d个学生的学号",i+1);
scanf("%d",&s[i].num);
getchar();
printf("请输入第%d个学生的姓名",i+1);
scanf("%c",&s[i].name);
for(j=0;j<3;j++)
{printf("请输入第%d个学生的第%d个成绩",i+1,j+1);
scanf("%lf",&s[i].score[j]);}
}
}
double avr(struct stu s[])
{
int i,j;
double sum=0;
for(i=0;i<5;i++)
for(j=0;j<3;j++)
sum+=s[i].score[j];
return sum/5;
}