#include <stdio.h>
#include <stdlib.h>
int main()
{
int num=0; /* 班级人数计数 */
int sumScore=0; /* 累计成绩*/
int curClass; /* 当前班级 */
int curScore; /* 当前成绩 */
int lastClass; /* 上一个班级*/
FILE *fin; /* 输入文件 */
fin=fopen("score.dic","r"); /* 打开输入文件读 */
if(!fin) /* 文件打开失败 */
{
fprintf(stderr,"error open file!\n"); /* 输出错误信息到标准错误设备 */
exit(-1); /* 强制退出,并返回错误码 */
}
/****************/
char name[20];
fscanf(fin,"%d%s%d",&curClass, name, &curScore);
sumScore=curScore;
lastClass=curClass;//还是要先处理一次,不然无法保证lastClass=curClass
num=1;
while(fscanf(fin,"%d%s%d",&curClass, name, &curScore)!=EOF)
{
if(curClass!=lastClass)
{
printf("%d\t%d\n",lastClass,sumScore/num);
sumScore=0;
num=0;
}
if(curScore>0&&curScore<=100)
{
sumScore+=curScore;
++num;
lastClass=curClass;
}
else
{
lastClass=curClass;
continue;
}
}
printf("%d\t%d\n",lastClass,sumScore/num);
//读取到EOF就结束循环了,所以还要在这里再加一句
fclose(fin);
/*****************/
return 0;
}