Problème fonction c++

Fermé
supersamsam2005 Messages postés 7 Date d'inscription vendredi 20 avril 2018 Statut Membre Dernière intervention 2 janvier 2021 - 10 févr. 2020 à 15:51
supersamsam2005 Messages postés 7 Date d'inscription vendredi 20 avril 2018 Statut Membre Dernière intervention 2 janvier 2021 - 11 févr. 2020 à 08:42
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)
A voir également:

2 réponses

Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
10 févr. 2020 à 17:43
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
1
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331
10 févr. 2020 à 18:38
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.
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931 > NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024
10 févr. 2020 à 18:47
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...)
0
supersamsam2005 Messages postés 7 Date d'inscription vendredi 20 avril 2018 Statut Membre Dernière intervention 2 janvier 2021
11 févr. 2020 à 08:42
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.
0