關於代碼下面向下信息:該函數初始化玩家碼是:我不小心用條件語句(if)更改變量?
void initialise_players (tvector_players *vj){
int i;
for (i=0; i< (vj->nplayers); i++){
vj->vjug [i].letter = 'A'+i;
vj->vjug [i].num_regiones = 0;
}
}
過去之前的函數調用,所述第二對(對於(j = 0內;Ĵ<(mapa-> NUM_COLS + 1) ; j ++))我給一個角色「map-> p [i + 1] .m [j + 1] .player_id」。 然後我打印出來,此刻一切正常。但是,然後我使用了一個條件語句,它不應該以任何方式影響最後一個變量,我再次打印它,但是這次變量「map-> p [i + 1] .m [j + 1] .player_id」無理由更改爲'A'。如果給出的第一個字符是'A'但大部分時間不是這樣是可以理解的。爲什麼?
initialise_players (vj);
for (i=0; i < (map->rows+1); i++){
for (j=0; j < (mapa->num_cols+1); j++){
map->p[i+1].m[j+1].player_id = 'A'+rand()%vj->nplayers;
printf ("\n%c\n", map->p[i+1].m[j+1].jugador_id);
if (map->p[i+1].m[j+1].jugador_id = 'A'){
printf ("\n%c\n", map->p[i+1].m[j+1].jugador_id);
vj->vjug[0].num_regiones += 1;
}
}
}
show_matrix (map, vj);
'='用於分配。使用'=='進行平等檢查 – kuro
對不起,因爲被推遲了,我只是花了最後4個小時試圖找到一個solution.ty這麼多 –