#include<stdio.h>
#define N 2
struct student
{
char name[100];
int ID;
float grade[3];
float average[N];
}stud[N];
void save()
{
FILE *fp;
int i;
if((fp=fopen("stud_dat","wb"))==NULL)
{
printf("cannot open file\n");
return;
}
for(i=0;i<N;i++)
if(fwrite(&stud[i],sizeof(struct student),1,fp)!=1)
printf("file write error\n");
fclose(fp);
}
void main()
{
int i;
printf("Please enter the date of the students :\n");
for(i=0;i<N;i++)
{
scanf("%s %d%f%f%f",stud[i].name,&stud[i].ID,
&stud[i].grade[0],&stud[i].grade[1],&stud[i].grade[2]);
}
//printf("The dates about the 5 students are:\n");
for(i=0;i<N;i++)
{
stud[i].average[i]=0.0;
for(int k=0;k<3;k++)
stud[i].average[i]=stud[i].average[i]+stud[i].grade[k];
stud[i].average[i]=stud[i].average[i]/3;
/*printf("name:%s\nID:%d\ngrade1:%.1f\ngrade2:%.1f\ngrade3:%.1f\naverage:%.1f\n",
stud[i].name,stud[i].ID,stud[i].grade[0],stud[i].grade[1],stud[i].grade[2],stud[i].average[i]);*/
}
save();
printf("\n");
}
然后检验时错了
#include<stdio.h>
#define N 2
struct student
{
char name[100];
int ID;
float grade[3];
float average[N];
}stud[N];
void main()
{
int i;
FILE *fp;
if((fp=fopen("stud_dat","rb"))==NULL)
{
printf("cannot open file\n");
return;
}
for(i=0;i<N;i++)
{
fread(&stud[i],sizeof(struct student),1,fp);
printf("name:%s\nID:%d\ngrade1:%.1f\ngrade2:%.1f\ngrade3:%.1f\naverage:%.1f\n",
stud[i].name,stud[i].ID,stud[i].grade[0],stud[i].grade[1],stud[i].grade[2],stud[i].average[i]);
}
fclose(fp);
}
求修正错误。。。不用全改了。。。