关于结构体的代码,运行时出错了,求指教
原题如下:有十个学生,每个学生的数据包括学号,姓名,3门课的成绩,从键盘输入十个学生的数据,要求输出十个学生3门课程总平均成绩,最高分学生的数据,以及第N个学生的成绩。
以下是我写的代码,只输出了十个学生3门课程总平均成绩就终止了,求指教。大的框架请不要改动。
#include <stdio.h>
#define N 10
#define M 3
struct student
{
int num;
char name[8];
float score[3];
float avg;
};
int main()
{
void input(struct student stu[],int n);
void average(struct student stu[],int n);
int search(struct student stu[],int n);
void print(struct student stu[],int n);
struct student stu[N];
int max;
input(stu,N);
average(stu,N);
max=search(stu,N);
print(stu,max);
return 0;
}
void input(struct student stu[],int n)
{ int i,j;
for(i=0;i<n;i++)
{
scanf("%d%s",&stu[i].num,&stu[i].name[8]);
for(j=0;j<M;j++)
{
scanf("%f",&stu[i].score[j]);
}
}
}
void average(struct student stu[],int n)
{
int i;
for(i=0;i<n;i++)
{
stu[i].avg=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;
printf("Average score of No.%d:%.2f\n",i,stu[i].avg);
}
}
int search(struct student stu[],int n)
{
int max;
max=n;
for(;n--;)
if (stu[max].avg<stu[n].avg)
max=n;
return max;
}
void print(struct student stu[],int n)
{
printf("No.%d,Name:%s,score:%.2f,%.2f,%.2f,average:%.2f",stu[n]);
}