函数出现问题了,麻烦大佬们看一下! !!
编程:输入3名学生的学号、班级、姓名、三门课成绩,打印出每个学生三门课的平均成绩,以及每门课程平均分、最高分学生数据(包括学号、班级、姓名、三门课成绩,平均分)。#include <stdio.h>
#include <string.h>
int average(struct student,int,int);
struct student
{
char x[50];
char b[50];
char name[20];
int point[3];
int average;
}st[3];
struct student s[20];
int main()
{
int i,m,n,k,x=0;
printf("欢迎来到学生成绩管理系统\n");
for(i=0,m=0;i<=2;i++)
{
printf("请输入学生学号:");
gets(st[i].x);
printf("请输入学生班级:");
gets(st[i].b);
printf("请输入学生名字:");
gets(st[i].name);
printf("请输入学生数学成绩:");
scanf("%d",&st[i].point[m]);
m++;
printf("请输入学生语文成绩:");
scanf("%d",&st[i].point[m]);
m++;
printf("请输入学生英语成绩:");
scanf("%d",&st[i].point[m]);
st[i].point[m];
m=0;
getchar();
printf("\n");
printf("\n");
printf("\n");
}
k=average(st,i,x);
for(i=0;i<=2;i++)
{
printf("学生学号:%s\n",st[i].x);
printf("学生班级:%s\n",st[i].b);
printf("学生姓名:%s\n",st[i].name);
printf("学生平均成绩: %d\n",st[i].average);
}
printf("\n");
printf("\n");
printf("\n");
printf("平均分最高的学生学号:%s\n",st[k].x);
printf("平均分最高的学生班级:%s\n",st[k].b);
printf("平均分最高的学生姓名:%s\n",st[k].name);
printf("平均分最高的学生平均成绩: %d\n",st[k].average);
return 0;
}
int average(struct student s[],int i,int x)
{
int k;
for(i=0;i<=2;i++)
{
s[i].average=(s[i].point[0]+s[0].point[1]+s[i].point[2])/3;
if(x<=s[i].average)
{
x=s[i].average;
k=i;
}
}
return k;
}
显示的错误是这样的:error C2664: 'average' : cannot convert parameter 1 from 'struct student [3]' to 'struct student' No constructor could take the source type, or constructor overload resolution was ambiguous