Code:
int main(int argc, char*argv[])
{
double i=0.0;
double j=0.0;
int player_number;
double batting_average;
char batting_record;
FILE *fp=fopen(argv[1],"r");
while(fscanf(fp,"%d%c",&player_number,&batting_record)!=EOF)
{
fscanf(fp,"%d",&player_number);
printf("\nPlayer %d's record: ",player_number);
while(batting_record!='\n')
{
fscanf(fp,"%c",&batting_record);
printf("%c",batting_record);
if (batting_record=='H')
i++;
if (batting_record=='O')
j++;
if ((i!=0)&&(j!=0))
batting_average=(i)/(i+j);
}
printf("Player %d's batting average: %.2lf\n",player_number,batting_average);
}
return 0;
}
problem source lines 30 batting_average
File:
Player 12's record: HOOOWSHHOOHPWWHO
Player 12's batting average: 0.455
Player 4's record: OSOHHHWWOHOHOOO
Player 4's batting average: 0.417
Player 7's record: WPOHOOHWOHHOWOO
Player 7's batting average: 0.364
my output: //first output result is correct, but the rest are off...?
Player 12's record: HOOOWSHHOOHPWWHO
Player 12's batting average: 0.45 (correct)
Player 4's record: OSOHHHWWOHOHOOO
Player 4's batting average: 0.43 (wrong)
Player 7's record: WPOHOOHWOHHOWOO
Player 7's batting average: 0.41 (wrong)