A voir également:
- Probleme puissance 4 en C
- Test puissance pc - Guide
- Puissance en c - Forum Programmation
- Puissance wifi - Guide
- Code gta 4 ps4 - Guide
- 4 gb en go ✓ - Forum Clé USB / Carte mémoire
3 réponses
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
12 déc. 2009 à 17:58
12 déc. 2009 à 17:58
Ouais, quand tu saisis un caractère, par exemple zéro: la valeur que tu retrouves dans 'choix' n'est pas le nombre zéro mais le caractère zéro soit 0x30 en hexa ou 0b00110000 en binaire ou 48 en décimal.
D'autre part on ne fait pas des tests du type:
(choix!=0)||(choix!=1)||(choix!=2)||(choix!=3)||(choix!=4)||(choix!=5)||(choix!=6)||(choix!='s')
mais plus lisiblement (et plus simplement):
(choix < '0') || ((choix > '6')) && (choix != 's'))
Bonne réflexion.
D'autre part on ne fait pas des tests du type:
(choix!=0)||(choix!=1)||(choix!=2)||(choix!=3)||(choix!=4)||(choix!=5)||(choix!=6)||(choix!='s')
mais plus lisiblement (et plus simplement):
(choix < '0') || ((choix > '6')) && (choix != 's'))
Bonne réflexion.
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
12 déc. 2009 à 18:11
12 déc. 2009 à 18:11
D'autre part:
while(resultat != 0) { if (choix == 's') { resultat = 0; break; } else colonne = choix; if (colonne == 0) colonne++; else if (colonne !=0 ) // Si ce n'est pas nul, c'est donc non nul ! colonne+=colonne+1; // Veux-tu vraiment faire: colonne = 2*colonne + 1 ? ... }peut se simplifier en:
while(resultat) { if (choix == 's') { resultat = 0; break; } colonne++; ... }Bonne continuation.
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
>
omegas27
12 déc. 2009 à 18:27
12 déc. 2009 à 18:27
Une coquille de copié-collé s'est glissée ;-) Il faut lire:
(choix < '0') || ((choix > '6') && (choix != 's'))
D'ailleurs le compilateur a dû raler !
Mille excuses.
(choix < '0') || ((choix > '6') && (choix != 's'))
D'ailleurs le compilateur a dû raler !
Mille excuses.
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
12 déc. 2009 à 18:19
12 déc. 2009 à 18:19
for (j=6; j>=0; j--) { if (grille[colonne][j] == ' ') { if (val == 1) { grille[colonne][j] == 'X'; // Faux, mettre un simple '=' break; } else if (val == 2) { grille[colonne][j] == 'O'; break; } } }Ne serait-il pas plus judicieux d'utiliser, pour 'val', les valeurs 'X' et 'O'; dans ce cas ton code deviendrait:
for (j=6; j>=0; j--) { if (grille[colonne][j] == ' ') { grille[colonne][j] = val; break; } }Bonne continuation.