Error: assignment of ready-only c++
Résolu
zhopte
Messages postés
64
Date d'inscription
Statut
Membre
Dernière intervention
-
zhopte Messages postés 64 Date d'inscription Statut Membre Dernière intervention -
zhopte Messages postés 64 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je debute en c++, j'ai un exercice a faire mais sa me marque : error: assignment of ready-only variable ' '. Je ne comprend pas le probleme.
Je debute en c++, j'ai un exercice a faire mais sa me marque : error: assignment of ready-only variable ' '. Je ne comprend pas le probleme.
#include <iostream> #include "stdlib.h" #include "time.h" using namespace std; int main() { srand((unsigned)time(NULL)); int X; int N=0; int Y; int A; char aller='o'; const int MAX=999, MIN=0; X=rand()%999; while (aller='o') { N=N+1; Y = (MAX+MIN)/2; if(MAX+MIN & 1) { A = rand()%1; Y=Y+A; } if (Y>X) { MAX=Y-1; cout << "trop grand"; } aller='o'; if (Y<X) { MIN=Y+1; cout << "trop petit"; aller='o'; } if (Y==X) { cout << "GAGNER EN : "<<N; cout << " COUPS"<<endl; return 0; } } }
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Error: assignment of ready-only c++
- Cmos checksum error ✓ - Forum Carte-mère/mémoire
- Playback error reconnect in 3s (1/5) francais - Forum Box et Streaming vidéo
- Error 1962 ✓ - Forum PC fixe
- Whea error occt - Forum Processeur
- A javascript error occurred in the main process - Forum Matériel & Système
2 réponses
Bonjour
Il y a des choses bizarres dans ton programme :
Ton erreur vient de là : tu dis que MIN et MAX sont constants, puis tu essayes de les modifier.
Et à quoi te sert ta variable 'aller', que tu initialises à 'o', que tu testes à 'o' alors que tu ne changes jamais sa valeur ?
Il y a des choses bizarres dans ton programme :
while (aller='o'): à en juger par le reste, tu sembles bien savoir que la comparaison c'est == et non pas =
const int MAX=999, MIN=0; MAX=Y-1; MIN=Y+1;
Ton erreur vient de là : tu dis que MIN et MAX sont constants, puis tu essayes de les modifier.
A = rand()%1;: petit problème de maths je suppose que tu voulais faire %2. Car l'opérateur % te donne le reste de la division, et quand tu divises par 1, ça tombe toujours juste : le reste est toujours 0. Je pense d'ailleurs que le %999 que tu fais au début relève de la même erreur : tu voulais sûrement faire %1000, même si ici c'est moins grave.
Et à quoi te sert ta variable 'aller', que tu initialises à 'o', que tu testes à 'o' alors que tu ne changes jamais sa valeur ?
Mode automatique : Vous entrez votre choix à la demande de l’ordinateur, celui-ci résout alors tout seul le problème, et fais lui-même les réponses à ses propres propositions.
J'avais bien compris que c'était ton intention, je te dis que c'est faux. %1 te donne le reste d'une division par 1, et le reste d'une division par 1, c'est TOUJOURS 0, pas tantôt 0, tantôt 1. Ce n'est pas une question de langageC, c'est une question d'arithmétique.
De même, le reste d'une division par 999 c'est un nombre de 0 à 998, pas un nombre de 0 à 999.