以下是我写的代码
#include
#include
typedef struct BirthDate {
int year;
int month;
int day;
}birthdate;
typedef struct Student{
unsigned int num;
char name[20];
unsigned char sex;
birthdate date;
int scores[4];
}student;
void ShowStuInfo( student*pstudent);
double Average(student*students,int N,int i);
int main()
{
int N;
printf("请输入学生数量\n");
scanf("%d",&N);
student* students;
int i;//学科代码
int count;//学生信息输入循环变量
double ave=0;
//分配学生结构体数组需要的内存
students=(student*)malloc(N*sizeof(student));
//通过函数显示每个学生的信息
for(count=0;count<N;count++)
{
ShowStuInfo(students);
}
//求某一学科的平均成绩
ave=Average(students,N,i);
printf("%lf",ave);
free(students);
return 0;
}
void ShowStuInfo(student*pstudent)
{
printf("请输入学号 姓名 性别 出生年-月-日\n");
scanf("%d %s %c %d-%d-%d",
&pstudent->num,
pstudent->name,
&pstudent->sex,
&pstudent->date.year,
&pstudent->date.month,
&pstudent->date.day);
printf("请输入各科成绩\n");
scanf("%d %d %d %d",
&pstudent->scores[0],
&pstudent->scores[1],
&pstudent->scores[2],
&pstudent->scores[3]
);
}
double Average(student*students,int N,int i)
{
int j;
double Ave;
for(j=0;j
{
Ave+=students->scores[i];
}
Ave/=N;
return Ave;
}
以下是运行结果
求问哪错了