Choix entre deux variables.

Résolu/Fermé
sikim69 Messages postés 33 Date d'inscription lundi 24 septembre 2012 Statut Membre Dernière intervention 30 mars 2013 - 30 mars 2013 à 21:09
sikim69 Messages postés 33 Date d'inscription lundi 24 septembre 2012 Statut Membre Dernière intervention 30 mars 2013 - 30 mars 2013 à 21:56
Bonsoir à tous,

J'aimerais savoir si c'est possible en C de faire appel à une fonction qui choissira entre deux variables.

Exemple :

int i = 5, j = 0;

// J'aimerais que l'ordinateur choissise au hasard entre la variable i et la variable j.

Est ce faisable ?


Merci !
bonne soirée à tous et à toutes
A voir également:

1 réponse

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
30 mars 2013 à 21:21
Tu peux toujours faire un tirage aléatoire entre 0 et 1 pour utiliser cette valeur comme test dans un if, ou un opérateur ternaire.

int k = random()%2 ? i : j;
0
sikim69 Messages postés 33 Date d'inscription lundi 24 septembre 2012 Statut Membre Dernière intervention 30 mars 2013 1
30 mars 2013 à 21:39
Donc comment expliquer ce que tu viens d'ecrire ? Parce que si c'est comme je le comprend c'est une bonne idée !
Mais je prefere etre sur..
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
Modifié par KX le 30/03/2013 à 21:50
"comment expliquer ce que tu viens d'ecrire ?"
Bah, je l'ai déjà expliqué non ?

random()%2 c'est le tirage aléatoire entre 0 et 1. J'ai implicitement utilisé le fait qu'en C on a 0 qui vaut false et 1 qui vaut true pour faire le test, donc on pourrait faire explicitement un test "random()%2 != 0" mais ça revient au même. Ensuite la structure "? i : j" c'est l'opérateur ternaire dont je parlais. On peut aussi faire ça avec un if, mais c'est plus long.

int k;
if (random()%2 != 0)
    k=i;
else
    k=j;
0
sikim69 Messages postés 33 Date d'inscription lundi 24 septembre 2012 Statut Membre Dernière intervention 30 mars 2013 1
30 mars 2013 à 21:56
Un grand merci à toi !

Bonne soirée !
0