题目
设存储在D盘根目录下的文本文件score.dat中记录着学生的姓名和成绩,每一行表示一个学生的信息,包括学生姓名(姓名中不存在空格等特殊符号)和成绩,它们之间用制表符(\t)分隔,例如:
zhangsan 84.5
lisi 78
wangwu 65.5
maliu 90
请针对该文件写一个程序,该程序的功能是计算所有学生的平均成绩,并输出其中成绩
最高的3个学生的信息(姓名和成绩);若学生总人数不足3人,则输出全部学生的信息。
抛砖引玉
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct student_type {
char name[10];
char scoreStr[10];
float score;
} STU;
int main( int argc, char *argv[] )
{
int i=0,maxScoreList[3]={0,0,0};//用于记录前三高分
int maxScoreIndexList[3]={-1,-1,-1};//用于记录高分的索引
FILE *fp;
STU stud[10];
float totalScore=0;
fp = fopen("score.dat","r");
char ch[255],name[10],*p,*p_end;
while(fgets(ch, 255, (FILE*)fp)!=NULL){
p = strchr(ch,'\t'); //获取制表符的位置
p_end = str