此循环为何不能输入第二组数据?
这个程序的目的是输入若干个学生的5门课的成绩,然后输出,再找出最高分,输出对应的学生和分数。但我试了好几次,它只能输出第一组数据,为什么呢?我实在搞不明白,希望高手指点!#include<stdio.h>
#include<stdlib.h>
void InputScore();
int FindMaxScore(int n);
float AverageEachStu();
float AverageEachCourse();
void Calculate();
void DisplayScore();
#define N 10
int score[N][5];
float averageStu[N];
float averageCourse[5];
struct StudentScore
{
int num[3000];
char name[30];
float score[3000];
};
struct StudentScore student[N];
int main(void)
{
int i;
int stu=0;
int maxstu;
for(stu=0;stu<N;stu++)
{
InputScore(stu);
Calculate(stu);
break;
}
maxstu=FindMaxScore(stu);
printf("得最高分的人是:%s\n",student[stu].name);
printf("他(她)的成绩是:%f",student[stu].score);
DisplayScore(maxstu);
for(i=0;i<5;i++)
averageCourse[i]=AverageEachCourse(N,i);
printf("平均成绩是%f\n",averageCourse[i]);
system("PAUSE");
return 0;
}
void InputScore()
{
int i,n;
for(n=0;n<N;n++)
{
for(i=0;i<N;i++)
{
printf("\n请输入第%d个人的学号:",i+1);
scanf("%d",student[i].num);
printf("输入姓名:");
scanf("%s",student[i].name);
printf("输入成绩:");
scanf("%f",student[i].score);
}
break;
}
printf("\n\n学号\t\t\t姓名\t\t\t成绩\n\n");
for(i=0;i<N;i++)
{
for(n=0;n<N;n++)
printf("\n%d\t\t\t%s\t\t\t%f\t\t\t%f\n",student->num,student->name,student->score);
}
}
int FindMaxScore(int n)
{
int max=0;
for(n=0;n<5;n++)
{
int i;
for(i=0;i<N;i++)
{
max=score[i][n]>score[max][n]?i:max;
}
}
return max;
}
float AverageEachStu()
{
int i,n;
float sum=0;
for(n=0;n<N;n++)
{
for(i=0;i<5;i++)
sum+=score[n][i];
}
return sum/5;
}
float AverageEachCourse()
{
int i,n;
float sum=0;
for(i=0;i<5;i++)
{
for(n=0;n<N;n++)
sum+=score[n][i];
}
return sum/N;
}
void Calculate()
{
AverageEachStu();
AverageEachCourse();
}
void DisplayScore()
{
int i=0;
int n=0;
printf("%f",score[i][n]);
}