大佬们救命,求解

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;
}
...全文
124 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
源代码大师 2021-05-06
  • 打赏
  • 举报
回复
希望对你有帮助: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
  • 打赏
  • 举报
回复
什么问题呢???

64,682

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧