c程序运行错误,麻烦给位高手帮我看看。谢谢

来源:百度知道 编辑:UC知道 时间:2024/05/14 02:43:58
/*有5个学生,每个学生有3门课程的成绩,从键盘输入学生数据(包括学号、姓名、3门课程成绩),计算出平均成绩,将原有的数据和计算出的平均分数存放在磁盘文件stud中。*/
#include<stdio.h>
#include<stdlib.h>
#define N 5
//定义结构体
struct student
{
int number;
char name[10];
int score[3];
double average;
};
//定义计算平均分函数
void ave(struct student *p)
{
int i,j;
int sum;
for(i=0;i<N;i++)
{
sum=0;
for(j=0;j<3;j++)
sum+=p[i].score[j];
p[i].average=1.0*sum/3;
}
}
void main()
{
void ave(struct student *p);
FILE *fp;
struct student stu[N];//定义结构体数组
struct student* p=(struct student*)malloc(N*sizeof(struct student));//定义指向结构体数组的指针
int i;
p=stu;//使p指向stu结构体数组
for(i=0;i<N;i++)
p[i].average=0;
for(i=0;i<N;i++)
scanf("%d %s %d %d %d",&p[i].number,p[i].name,&p[i].score[0],&p[i].score[1],&p[i].score[2]);//输入学生数据
ave(p);//调用ave函数计算各学生平均分
i

#include<stdio.h>
#include<stdlib.h>
#define N 5
//定义结构体
struct student
{
int number;
char name[10];
int score[3];
double average;
};
//定义计算平均分函数
void ave(struct student *p)
{
int i,j;
int sum;
for(i=0;i<N;i++)
{
sum=0;
for(j=0;j<3;j++)
sum+=p[i].score[j];
p[i].average=1.0*sum/3;
}
}
int main()
{
void ave(struct student *p);
FILE *fp;
struct student stu[N];//定义结构体数组
struct student* p=(struct student*)malloc(N*sizeof(struct student));//定义指向结构体数组的指针
int i;
p=stu;//使p指向stu结构体数组
for(i=0;i<N;i++)
p[i].average=0;
for(i=0;i<N;i++)
scanf("%d %s %d %d %d",&p[i].number,p[i].name,&p[i].score[0],&p[i].score[1],&p[i].score[2]);//输入学生数据
ave(p);//调用ave函数计算各学生平均分
if((fp=fopen("d:\\test.txt","w"))==NULL)//打开test文件
{