5个学生,输出3课成绩总分的最大分数的学生信息。
代码:
#include <stdio.h>
typedef struct student
{
char id[10];
char name[10];
float cyy;
float jsj;
float eng;
}st; // typedef关键字 将结构体重命名为 st
main()
{
int i,c;
float max,sum; //max是最大的分数,sum用来求每个学生分数和
//定义文件指针fp
FILE *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);
}