主函数有问题,但是不知道怎么调~
程序代码:
#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个学生数据的输入,用另一个函数负责求每个学生三门课程的平均成绩,再用一个函数求出平均分最高的学生并输出该学生的数据。要求平均分和平均分最高的学生数据都在主函数种输出。