求帮忙看一道题和修改代码。。。
实验内容1::试编写一个程序完成:有5个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入5个学生数据,要求输出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩、平均分数)。实验要求:(1)要求用一个input函数输入5个学生数据;应一个average函数求平均分;用max函数求出最高分学生数据;总平均分和最高分的学生的数据都在主函数中输出。
测试数据
1
Zhang Li
89
69
77
2
Li Ling
99
100
66
3
Wang Lan
79
56
88
4
Zhao Xin
88
95
100
5
Yang Ke
77
50
88
结果
81.40
4
Zhao Xin
88.00
95.00
100.00
94.33
我自己写的。。。
#include"stdio.h"
float averages();
int max();
float sum=0.00,ave;
struct input
{
int number;
char name[10];
float score[3];
};
struct input student[5];
main()
{
float m;
int re,i;
{
int j,i;
for(j=0;j<5;j++)
{
scanf("%d",&student[j].number);
scanf("%s",student[j].name);
for(i=0;i<3;i++)
scanf("%f",&student[j].score[i]);
}
}
m=averages();
printf("%.2f",m);
re=max();
printf("%d",&student[re].number);
printf("%s",student[re].name);
for(i=0;i<3;i++)
printf("%f",&student[re].score[i]);
for(i=0;i<3;i++)
sum+=student[re].score[i];
ave=sum/3;
printf("%.2f",ave);
}
float averages()
{
int j,i;
float sum=0.00,s;
for(j=0;j<5;j++)
{ for(i=0;i<3;i++)
sum+=student[j].score[i]; }
s=sum/15;
return s;
}
int max()
{
float max,ave[5];
int best;
int j,i;
for(j=0;j<5;j++)
{float sum=0.00;
for(i=0;i<3;i++)
sum+=student[j].score[i];
ave[j]=sum/3;}
max=ave[0];
for(j=0;j<5;j++)
if(ave[j]>max)
best=j+1;
return best;
}
首先我不明白怎么叫做Input函数,需要调用还是直接放在主程序中
还有一个函数调用后的结果怎么用到另一个调用函数中,比如我在算平均分的函数的结果(5个平均分)怎么可以用到Max函数中;
第三是可不可以同时返回一个结构体,或者怎么返回一个float平均值和一个Int编号的值
我上面打的函数有点奇葩,,怎么修改好,,,
求解救。。