主函数有问题,但是不知道怎么调~
程序代码:#include<stdio.h>
#define N 5
struct student
{
int num; //学号
char name[20]; //姓名
char classname[20]; //班级
float score[3]; //成绩
double aver_score;
}stu[5];
double averagescore(struct student stu[],int number)
{
int i;
for(i=0;i<=number;i++)
{
stu[i].aver_score=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;
return stu[i].aver_score;
}
}
int max(struct student stu[], int number)
{
int j,k=0;
double av;
av=stu[0].aver_score;
for(j=0;j<number;j++)
{
if(av<stu[j].aver_score)
{
av=stu[j].aver_score;
k=j;
}
return k;
}
}
main()
{
struct student stu[N];
int i,j;
for(i=0;i<5;i++)
{
printf("请输入学生信息,按学号,姓名,班级,三门分数\n");
scanf("%d,%s,%s,%ld,%ld,%ld",&stu[i].num,&stu[i].name,&stu[i].classname,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
}
for(i=0;i<5;i++)
{
stu[i].aver_score=averagescore(stu, N);
}
j=max(stu,N);
printf("\n%-5s%-10s%-15s%-10s%-10s%-10s%-20s%\n","Num","Name","Classname","Score1","Score2","Scoare3","Averagescore");
for(i=0;i<5;i++)
{
printf("%-5ld%-10s%-15s%-10.3ld%-10.3ld%-10.3ld%-20.3ld%\n",
stu[i].num,stu[i].name,stu[i].classname,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].aver_score);
}
printf("one:%d,%s,%s,%ld,%ld,%ld",stu[j].num,stu[j].name,stu[j].classname,stu[j].score[0],stu[j].score[0],stu[j].score[0]);
}
1.学生成绩管理:有5个学生,每个学生的数据包括学号、班级、姓名、三门课成绩。从键盘输入5个学生数据,要求打印出每个学生三门课的平均成绩,以及每门课程平均分、最高分学生数据(包括学号、班级、姓名、三门课成绩,平均分)。【实验要求】
(1) 定义学生结构体。
(2) 用一个函数实现5个学生数据的输入,用另一个函数负责求每个学生三门课程的平均成绩,再用一个函数求出平均分最高的学生并输出该学生的数据。要求平均分和平均分最高的学生数据都在主函数种输出。









