大佬们救命,求解

dyp1414 吉林大学 2020-06-01 08:04:04
有3个学生,每个学生的数据包括学号(num),姓名(name[20]), 性别 (sex), 三门课的成绩 (score[3]), 要求从键盘输入这3个同学的数据,然后调用fun1函数将3个同学的学号、姓名、性别 和总分数据以二进制形式写入文件out.dat中,再调用fun2函数从文件out.dat中读取数据,并输出到屏幕上。
#include <stdio.h>
#include <stdlib.h>
#define N 3
struct student
{
int num ;
char name[10];
char sex;
float score[3];
int sum;
}stu[N] ;
void fun1()
{
FILE *fp;
int i;
if( (fp= fopen("out.dat","wb"))== NULL)
{
printf("cannot open file\n") ;
exit(0) ;
}
for(i=0;i<N;i++)
if (fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
printf ("file write error\n") ;
fclose(fp) ;
}
void fun2 ()
{
FILE * fp;
int i;
struct student stu[N] ;
if((fp= fopen ("out.dat","rb"))== NULL)
{
printf ("cannot open file \n") ;
exit (0) ;
}
for (i=0;i<N;i++ )
{
fread(&stu[i],sizeof(struct student),1,fp) ;
printf("%d%s%s%d\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].sum);
fclose(fp) ;
}
}
int main()
{
int i,j,sum;
for(i=0;i<N;i++ )
{
printf ("input scores of student %d;\n",i+1) ;
printf ("NO. :") ;
scanf ("%d",&stu[i].num) ;
printf ("name:");
scanf ("%s",&stu[i].name) ;
printf ("sex:");
scanf ("%s",&stu[i].sex);
sum=0;
for(j=0;j<3;j++)
{
printf ("score %d:",j+1) ;
scanf ("%f",&stu[i].score[j]) ;
sum=sum+stu[i].score[j] ;
}
stu[i].sum=sum;
}
fun1();
fun2();
return 0;
}
...全文
93 点赞 收藏 3
写回复
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10768339.html
回复
dyp1414 2020-06-03
大一新手,这个是作业,我感觉大框是对的但是运行失败,自己是在看不出来哪里有问题,求大佬们
回复
chxchxkkk 2020-06-01
什么问题呢???
回复
相关推荐
发帖
C++ 语言
创建于2007-09-28

5.9w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
申请成为版主
帖子事件
创建了帖子
2020-06-01 08:04
社区公告
暂无公告