原题题目:
将从键盘输入的10个学生的学号和成绩存入到文件student.dat中。再从文件中读取学生的信息,求出最高分、最低分和总分,并将最高分、最低分的学生姓名及成绩存入到文件cj.dat中。
我的代码:
#include “iostream”
using namespace std;
int main()
{
struct student
{
char name[20];
char num[20];
float score;
}
;
char f[20]=“F:\student1.txt”;
struct student s[10];
FILE *fp;
if((fp=fopen(f,“w+”))==NULL)
{
cout<<“can’t open file/n”;
exit(1);
}
int i;
for(i=0;i<10;i++)
{
cin>>s[i].name>>s[i].num>>s[i].score
;fwrite(&s[i],sizeof(student),1,fp);
}
fclose(fp);
int imax=0,j,imin=0;
for(j=0;j<10;j++)
{
if(s[j].score>s[imax].score)
imax=j;
if(s[j].score<s[imin].score)
imin=j;
}
FILE *fp1;
char k[20]=“F:\cj1.txt”;
if((fp1=fopen(k,“a+”))==NULL)
{
cout<<“can’t open file/n”;
exit(1);
}
fwrite(&s[imax],sizeof(student),1,fp1);
fwrite(&s[imin],sizeof(student),1,fp1);
fclose(fp1);
system (“pause”);
return 0;
}
注:本题debug过程没有结束,所以一定存在错误,恳请批评指正.