#include <stdio.h>
#include <stdlib.h>
#define MAX 20
typedef struct info {
int nmber;
char fname[MAX];
char sname[MAX];
int second;
int hit;
int run;
int dot;
}INFOR;
int main(int argc, char *argv[])
{
int i=0;
//j 代表是否找到队员的队员
int j=0;
int count=0;
FILE *fp;
INFOR *aa;
INFOR bb;
//打开文件
if((fp=fopen(argv[1],“r”))==NULL)
{
fprintf(stderr,“Usage:%s filename\n”,argv[1]);
exit(2);
}
while(fscanf(fp,"%d %s %s %d %d %d %d\n",&bb.nmber,bb.fname,bb.sname,
&bb.second,&bb.hit,&bb.run,&bb.dot)!=EOF)
{
j=0;
for(i=0;i<count;i++)
{
if(aa[i].nmber==bb.nmber)
{
j=1;
aa[i].second+=bb.second;
aa[i].hit+=bb.hit;
aa[i].run+=bb.run;
aa[i].dot+=bb.dot;
}
}
if(!j)
{
if(count==0)
aa=(INFOR *)malloc(sizeof(INFOR) * ++count);
else
aa=(INFOR *)realloc(aa, sizeof(INFOR) * ++count);
aa[count-1]=bb;
}
}
for(i=0;i<count;i++)
{
printf("%d %s %s %d %d %d %d %.2f\n",aa[i].nmber,
aa[i].fname,
aa[i].sname,
aa[i].second,
aa[i].hit,
aa[i].run,
aa[i].dot,
(double)aa[i].second/(double)aa[i].hit);
}
free(aa);
fclose(fp);
return 0;
}
/* 测试文件
5 Aaaa Dddd 4 3 2 1
4 Bbbb eeee 3 2 1 1
5 Aaaa Dddd 3 2 2 2
6 Jkkk kkkk 5 2 2 1
4 Bbbb eeee 2 1 1 1
*/