文件二进制读写学生信息

来源:互联网 发布:centos 开启ssh 编辑:程序博客网 时间:2024/05/15 05:01

5个学生,输出3课成绩总分的最大分数的学生信息。

代码:

#include <stdio.h>typedef struct student{char id[10];char name[10];float cyy;float jsj;float eng;}st;   // typedef关键字 将结构体重命名为 stmain(){int i,c;float max,sum; //max是最大的分数,sum用来求每个学生分数和    //定义文件指针fpFILE *fp;      //xs数组存放学生信息st x[100], xs[5]={{"0001","甲",50,50,40},{"0002","李四",60,60,60},{"0003","乙",70,75,77},{"0004","张三",60,70,80},{"0005","王五",90,80,70}};   //wb打开新建文件,将学生信息写入文件中fp=fopen("c://xf163.dat","wb");fwrite(xs,sizeof(st),5,fp);fclose(fp);//rb从文件中读取出所有学生信息,放在x数组中fp=fopen("c://xf163.dat","rb");fread(x,sizeof(st),5,fp);fclose(fp);max = x[0].cyy + x[0].jsj + x[0].eng;    c=0;//在x数组中算出每个学生3科成绩的总和,max存放最大分数,c记录最大分学生下标for (i=1;i<5;i++){sum = x[i].cyy + x[i].jsj + x[i].eng;if(sum>max){max=sum;c=i;}}//输出printf("%s\n%s\n%f\n%f\n%f\n总成绩:%f\n",x[c].id,x[c].name,x[c].cyy,x[c].jsj,x[c].eng,max);}


0 0
原创粉丝点击