作业题,不知道问题在哪,大家帮我看看
代码就这样,输入两行学生数据后就自动结束了
#include <stdio.h>
#include <stdlib.h>
struct S
{
float s1;
float s2;
float s3;
};
struct m
{
int num;
char n[20];
struct S s;
float a;
};
int main()
{
struct m a[5],*p=a;
void inpute(struct m p[]);
float average(float p1,float p2,float p3,float p4,float p5);
int max(struct m p[]);
int k;
float j;
printf("请输入学生信息:学号,姓名,成绩1,成绩2,成绩3\n");
inpute(p);
printf("总平均分:\n");
j=average((*p).a,(*(p+1)).a,(*(p+2)).a,(*(p+3)).a,(*(p+4)).a);
printf("%f",j);
printf("最高分者:\n");
k=max(p);
printf("学号:%d 姓名:%s 科目1:%f 科目2:%f 科目3:%f 平均分:%f\n",(*(p+k)).num,(*(p+k)).n,(*(p+k)).s.s1,(*(p+k)).s.s2,(*(p+k)).s.s3,(*(p+k)).a);
return 0;
}
void inpute(struct m p[])
{
int i;
for(i=0;i<5;i++)
{
scanf("%d,%s,%f,%f,%f",p[i].num,p[i].n,p[i].s.s1,p[i].s.s2,p[i].s.s3);
p[i].a=(p[i].s.s1+p[i].s.s2+p[i].s.s3)/3.0;
}
}
float average(float p1,float p2,float p3,float p4,float p5)
{
float p;
p=p1+p2+p3+p4+p5;
return p;
}
int max(struct m p[])
{
int i,k=0;
for(i=0;i<5;i++)
{
if(p[i].a>p[k].a)
k=i;
}
return k;
}