为什么读入文件的内容不能正确的读出来?
/*2. 程序设计。
有5 个学生,每个学生有3 门课的成绩,从键盘输入以上数据(包括学号、姓名、3
门课成绩),计算出平均成绩。
(1)将原有数据和计算出的平均分数存放在磁盘文件stud.txt中。在向文件stud.txt
写入数据后,应检查验证stud.txt 文件中的内容是否正确。
(2)将stud.txt 文件中的学生数据,按平均分进行排序处理,将已排序的学生数据存入
一个新文件stu_sort.txt 中。
*/
#include<stdio.h>
#include<stdlib.h>
struct student
{
int num;
char name[20];
float chinese;
float math;
float english;
}stu[5];
//student stu[5];
float avrmber[5];
int main()
{
float avr(float a,float b,float c);
int i;
FILE *fp;
if(!(fp=fopen("stud.txt","w")))
{
exit(0);
}
for(i=0;i<5;i++)
{
scanf("%d %s %f %f %f",&stu[i].num,&stu[i].name,&stu[i].chinese,&stu[i].math,&stu[i].english);
fprintf(fp,"%d %s %.2f %.2f %.2f %.2f",stu[i].num,stu[i].name,stu[i].chinese,stu[i].math,stu[i].english,avr(stu[i].chinese,stu[i].math,stu[i].english));
//fprintf(fp,"\n");
}
fclose(fp);
fp=fopen("stud.txt","r");
for(i=0;i<5;i++)
{
fscanf(fp,"%d %s %f %f %f",&stu[i].num,&stu[i].name,&stu[i].chinese,&stu[i].math,&stu[i].english);
fscanf(fp,"%f",&avrmber[i]);
}
fclose(fp);
//核对信息是否正确
printf("请核对信息是否正确。\n");
for(i=0;i<5;i++)
{
printf("%d %s %.2f %.2f %.2f %.2f",stu[i].num,stu[i].name,stu[i].chinese,stu[i].math,stu[i].english,avrmber[i]);
printf("\n");
}
return 0;
}
float avr(float a,float b,float c)
{
return (a+b+c)/3;
}
我打开文件发现文件内容是对的
可是读出的时候avrmber的值是不对(输出内容跟文件内容不符)