7、已知存在一个学生文件,

来源:百度知道 编辑:UC知道 时间:2024/06/05 20:13:47
学号 姓名 平均成绩
100 li 75
101 wang 78
…. …….
998 zhang 75
(1) 编写一个程序, 给定学号返回学生的平均成绩
例如: 指定学号为 100
返回的数据为 75
(2) 根据平均成绩,将学生数据从大到小排序
过路的GG JJ给个好的答案谢谢了,急用 跪谢了 (用C语言 编程)

5分只做一问!

(1)
//---------------------------------------------------------------------------

#include <stdio.h>

struct {
int id;
char name[80];
float ave;
} stud;
int main(void)
{
FILE *fp;
int i;
fp=fopen("c:\\std.dat","rb");/*学生数据文件,可以在此修改*/
if (fp==NULL) {
printf("ERROR!\n");

}
else{
printf("ID=");
scanf("%d",&i);
while (!feof(fp))
{
fread(&stud,sizeof(stud),1,fp);
if (i==stud.id) {
printf("Name:%s\nAverage:%f\n",stud.name ,stud.ave );
fclose(fp);
fp=NULL;
break;
}

}
if (fp!=NULL) {
printf("NOT FOUND!");
fclose(fp);
}
}
return 0;
}
//---------------------------------------------------------------------------