Problème fonction c++

Signaler
Messages postés
3
Date d'inscription
vendredi 20 avril 2018
Statut
Membre
Dernière intervention
11 février 2020
-
supersamsam2005
Messages postés
3
Date d'inscription
vendredi 20 avril 2018
Statut
Membre
Dernière intervention
11 février 2020
-
Bonjour,

je suis ultra débutant en programmation. J'essaie juste de résoudre un casse tête en demandant d'essayer toutes les possibilités. Voilà la fonction :

int valeur_b_d1(int x) //valeur de la case de la ligne b en fonction de la position disque 1
{
if(x==1){return 17;}
if(x==3){return 2;}
if(x==5){return 2;}
if(x==7){return 10;}
if(x==9){return 15;}
if(x==11){return 6;}
if(x==13){return 9;}
if(x==15){return 16;}
}


Puis, dans ma boucle, je fais :
a2=10;
aa2=2;
a2=valeur_b_d1(aa2);
cout <<a2<< endl;


Et, pour a2, il me me ressort "2" alors que j'ai besoin de retomber sur "10".
J'aimerais que, si aa2 n'est pas impaire, a2 garde sa valeur initiale.

Je ne sais pas comment écrire la fonction pour prendre en compte cette particularité.

Pouvez-vous m'aider ? (en sachant que aa2 ne sera pas toujours égal à 2)

2 réponses

Messages postés
14239
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
18 février 2020
456
Bonjour

pour tes prochains messages merci de lire et d'applique ce qui est décrit sur ce petit tuto
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Pour ton problème, en l'état valeur_b_d1 ne pourra jamais retourner la valeur initiale de a2 puisque que cette fonction ne connais pas cette valeur.

Option 1, tu mets 2 paramètres à valeur_b_d1, le deuxième étant a2, et à l'intérieure de valeur_b_d1 tu testes si c'est pair ou pas avant tout.

Option 2, dans ta boucle tu testes si c'est pair et si oui tu n'effectues pas l'appel à valeur_b_d1
NHenry
Messages postés
14648
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
17 février 2020
203
J'ajouterai que 10 ou 2 ne sont pas des valeurs prévues dans tes tests, et qu'en cas d'échec, la fonction ne retourne rien de prévisible.
Whismeril
Messages postés
14239
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
18 février 2020
456 > NHenry
Messages postés
14648
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
17 février 2020

Salut certes, ce serait en partie résolu avec l'option 1.
Mais ça ne réglerait pas une entré impaire imprévue (21, 17 987654321, etc...)
Messages postés
3
Date d'inscription
vendredi 20 avril 2018
Statut
Membre
Dernière intervention
11 février 2020

Bonjour,

merci pour vos éclaircissements. Je comprends mieux.

Concernant les autres valeurs imprévues, la variable bb2 n'y va jamais, elle varie de 16 à 0, en diminuant de 1 à chaque boucle, puis quand elle est égale à 0, elle revient à 16.

Bonne journée.