求大神给看看 ,折磨我一天了啊
#include <stdio.h>
#define N 5
void input(struct student stu[N]);
float average(struct student stu[N]);
int max(struct student stu[N]);
struct student
{
char num[6];
char name[10];
float score[6];
};
struct student stu[N];
void input(struct student stu[N])
{
int i;
for(i=0;i<N;i++)
{
printf("学号:");
scanf("%s",stu[i].num);
printf("姓名:");
scanf("%s",stu[i].name);
printf("五门课的成绩:\n");
scanf("%f%f%f%f%f:",&stu[i].score[0],&stu[i].score[1],&stu[i].score[2],&stu[i].score[3],&stu[i].score[4]);
printf("\n");
}
}
float average(struct student stu[N])
{
int j,i;
float sum=0, ave;
for(i=0;i<N;i++)
{
for(j=0;j<5;j++)
{
sum+=stu[i].score[j];
}
stu[i].score[6]=sum/5;
printf("%d号学生的平均分是%f",i+1,stu[i].score[6]);
printf("\n");
}
int max(struct student stu[N])
{
int i,p;
float max;
max=stu[0].score[6];
for(i=1;i<N;i+1)
{
if(max<stu[i].score[6])
{
max=stu[i].score[6];
p=i;
}
}
return p;
}
void main()
{
int i,p;
float ave;
input(stu);
ave=average(stu);
printf("五门课的平均分是%f\n",ave);
printf("\n");
p=max(stu);
printf("最高分的学生的信息:\n学号:%s\n姓名:%s\n",stu[p].num,stu[p].name);
printf("五门的学科成绩\n");
printf("%f%f%f%f%f\n",stu[p].score[0],stu[p].score[1],stu[p].score[2],stu[p].score[3],stu[p].score[4]);
printf("平均分是%f\n",stu[p].score[6]);
}
[解决办法]
#include <stdio.h>
#define N 5
void input(struct student stu[N]);
void average(struct student stu[N]);
int max(struct student stu[N]);
struct student
{
char num[6];
char name[10];
float score[6];
};
struct student stu[N];
void input(struct student stu[N])
{
int i;
for(i=0;i<N;i++)
{
printf("学号:");
scanf("%s",stu[i].num);
printf("姓名:");
scanf("%s",stu[i].name);
printf("五门课的成绩:\n");
scanf("%f%f%f%f%f:",&stu[i].score[0],&stu[i].score[1],&stu[i].score[2],&stu[i].score[3],&stu[i].score[4]);
printf("\n");
}
}
void average(struct student stu[N])
{
int j,i;
float sum;
for(i=0;i<N;i++)
{
sum = 0;
for(j=0;j<5;j++)
{
sum+=stu[i].score[j];
}
stu[i].score[5]=sum/5;
printf("%d号学生的平均分是%f",i+1,stu[i].score[5]);
printf("\n");
}
}
int max(struct student stu[N])
{
int i,p;
float max;
max=stu[0].score[5];
for(i=1;i<N;i++)
{
if(max<stu[i].score[5])
{
max=stu[i].score[5];
p=i;
}
}
return p;
}
void main()
{
int p;
//float ave;
input(stu);
average(stu);
//ave=average(stu);
//printf("五门课的平均分是%f\n",ave);
printf("\n");
p=max(stu);
printf("最高分的学生的信息:\n学号:%s\n姓名:%s\n",stu[p].num,stu[p].name);
printf("五门的学科成绩\n");
printf("%f%f%f%f%f\n",stu[p].score[0],stu[p].score[1],stu[p].score[2],stu[p].score[3],stu[p].score[4]);
printf("平均分是%f\n",stu[p].score[5]);
}