题目是:有3名学生,从键盘上输入学生的学号,姓名,及3门课的成绩,并计算出平均成绩,然后将学生的记录和计算出的平均成绩存放在磁盘文件中:(代码如下)
#include <stdio.h>
main()
{
struct student
{
int num;
char name[10];
int score[3];
float aver;
}stu[3];
int i,j,aver;
FILE *fp;
aver=0;
if((fp=fopen("c:\\student.txt","wb"))==NULL)
{
printf("cannot open file.");
exit(0);
}
for(i=0;i<3;i++)
{
printf("enter %d num and name:",i+1);
scanf("%d%s",&stu[i].num,stu[i].name);
printf("enter score:");
for(j=0;j<3;j++)
{
scanf("%d",&stu[i].score[j]);
aver+=stu[i].score[j];
}
aver=aver/3;
stu[i].aver=aver;
aver=0;
}
for(i=0;i<3;i++)
printf("output:%3d%5s%4d%4d%6d%-5.2f\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1], stu[i].score[2],stu[i].aver);
for(i=0;i<3;i++)
{
if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
printf("%dfile write error.",i+1);
}
fclose(fp);
}
运行此代码时能够在屏幕上显示正确数据,可是打开文件时却不正确,不知问题出在哪里?请指点……谢谢!
[此贴子已经被作者于2006-6-20 9:45:48编辑过]