题目要求:
(基础题)学生有三门课程:A、B、C,3名学生的成绩如下表所示:
姓名 A B C 平均分
张三 78 84 67
李四 88 90 95
王五 66 79 80
请先定义一个结构体Student,其成员包括:name(姓名)、A、B、C、aver(平均分),再定义一个Student类型的数组stud[3]来存放学生资料。现欲先输入学生三门课程成绩,再计算平均分,最后输出学生信息,要求用“模块化程序设计”方法来设计程序。请根据题意、注释在代码段1-代码段5中填写程序所缺代码。


我的代码:
#include <stdio.h>
//定义结构体Student,学生姓名不超过10个字符
//三门课程成绩均为百分制,只取整数;平均分带小数
struct Student
{
char name[10];
int score[3];
float aver;
};
int i;
int main()
{
struct Student stud[3];//定义结构体数组stud[3]
void input(struct Student s[], int n);
void average(struct Student s[], int n);
void print(struct Student s[], int n);//对input()、average()、print()三个函数进行声明
input(stud, 3);
average(stud, 3);
print(stud,3);
//调用input()、average()、print()三个函数
//代码段2
return 0;
}
//定义输入n名学生的姓名、三门课程成绩的函数。
void input(struct Student s[], int n)
{
for(n=1;i<=3;n++)
{
printf("请输入第%d名学生数据:\n姓名:", n);
scanf(s[n-1].name);
getchar();
getchar();
printf("A课程成绩:");
scanf("%d", &s[n-1].score[0]);
printf("B课程成绩:");
scanf("%d", &s[n-1].score[1]);
printf("C课程成绩:");
scanf("%d", &s[n-1].score[2]);
}
printf("\n");
}
//定义计算n名学生三门课程平均分的函数
void average(struct Student s[], int n)
{
int sum=0;
for(i=0;i<3;i++)
{
for(i=0;i<3;i++)
sum=s[i].score[i]+sum;
s[i].aver=sum/n;
}
}
//定义输出n名学生的姓名、三门课程成绩、平均分的函数。学生信息输出如下图所示
void print(struct Student s[], int n)
{
for(i=0;i<3;i++)
{
printf("姓名:%s,A课程成绩:%d,B课程成绩:%d,C课程成绩:%d,平均分:%f。", s[i].name, s[i].score[0], s[i].score[1], s[i].score[2], s[i].aver);
printf("\n");
}
}
运行截图

问题:打印时有bug,达不到预期效果。