サッカーの試合で最小の観客数を見つける必要がある関数を作成しました。それは、メモリ内のランダムな場所を指しているように見え、理由を見つけることができないように見える team[10] を除くすべての値で機能します。ランダムに思えます。
Output:
FCN, 37.250000
SDR, 40.408000
FCM, 66.279000
VFF, 42.273000
OB, 65.967000
HOB, 22.352000
AGF, 75.126000
BIF, 124.341000
AAB, 66.410000
EFB, 53.708000
FCK, 128.433000 // This value changes randomly for each time i compile
RFC, 48.314000
Team: HOB, Spectators:22.352000
void solve_task_four(ROUND *round, TEAM *team) {
int j = 0;
int i = 0;
int k = 0;
for(i=0; i<33; i++) {
for(j=0; j<6; j++) {
if(round[i].match[j].year == 2015) {
for(k=0; k<12; k++) {
if(strcmp(round[i].match[j].home_team,team[k].name)==0) {
team[k].spectators_home_last_year += round[i].match[j].spectators;
}
}
}
}
}
for(k=0; k<12; k++) {
printf("%s, %lf\n", team[k].name, team[k].spectators_home_last_year);
}
}
ラウンドと呼ばれるマッチの構造体があります。各一致に関するデータが格納される構造体の一致。そして、私は構造体チームを持っています。チームの観客数と名前に関するデータを保存するチームの配列を作成しました。
編集:実際には半分の時間で正しい値を出力します。残りの半分は、たとえば次のように出力されます。
FCK, 11619132426987445786417210392049029283197879336796768202803907011075546173646479715331152202283963354268608554533948573765823213199739004181127023348833923632578496785562152249963391728687857881966870769941957750816768.000000
編集: 構造体:
typedef struct {
char *name;
int points, matches_played,
matches_won, matches_draw, matches_lost,
matches_won_home, matches_won_away,
goals_for, goals_against, goal_difference;
double spectators_home_last_year;
} TEAM;
構造体への入力 - チームの配列。(チーム数が12の場合)
TEAM team[NUMBER_OF_TEAMS];