C言語初心者です。
今、野球の対戦成績表をファイルから読み込んで、それぞれの勝数、負数、勝率を計算し、表示するという
プログラムを作っています。
途中までできたのですが、勝数、負数、勝率の計算がうまくいきません。
コンパイルは通るのですが、計算結果がとんでもない数字になってしまいます。
どこが間違っているのか、どなたかご教授いただけませんでしょうか。
ファイル名:taisen.txt
仕様: ・1行につき1チームの成績
・先頭がチーム名、2、3番目がteam1との戦績(勝数、負数)
・3、4番目がteam2との戦績(勝数、負数)
・その後も順にteam6までの戦績
team1 0 0 12 12 14 10 14 10 10 13 12 11
team2 12 12 0 0 7 16 8 15 13 11 9 15
team3 10 14 16 7 0 0 10 14 15 9 12 9
team4 10 14 15 8 14 10 0 0 11 13 14 10
team5 13 10 11 13 9 15 13 11 0 0 16 8
team6 11 12 15 9 9 12 10 14 8 16 0 0
#include<stdio.h>
#include<stdlib.h>
struct taisen{
char team[10];
int win_count[6];
int lose_count[6];
int win;
int lose;
double wpct;
};
int main(void)
{
FILE * fp;
char str[256];
struct taisen data[6];
int i,j,e;
if((fp = fopen("taisen.txt","r")) == NULL){
printf("ファイルを開くことができませんでした。\n");
exit(1);
}
for(i=0;i<6;i++){
fscanf(fp,"%s",&data[i].team);
for(j=0;j<6;j++){
fscanf(fp,"%d ",&data[i].win_count[j]);
fscanf(fp,"%d ",&data[i].lose_count[j]);
data[i].win = data[i].win + data[i].win_count[j];
data[i].lose = data[i].lose + data[i].lose_count[j];
data[i].wpct = (double)data[i].win / (data[i].win + data[i].lose);
}
}
printf("チーム名 勝 勝率\n");
for(e=0;e<6;e++){
printf("%s %d %3.f\n",data[e].team,data[e].win,data[e].wpct);
}
fclose(fp);
return 0;
}