je me demander comment je pourais faire pour que le pc choisisse entre ses caractére la au hassard (* , /, - et +)?
Version imprimable
je me demander comment je pourais faire pour que le pc choisisse entre ses caractére la au hassard (* , /, - et +)?
Tu génères un nombre aléatoire entre 1 et 4 et tu fait correspondre par exemple dans un switch-case un numéro avec un de tes caractères !
Salut,
...et pour obtenir un nombre aléatoire entre 0 et N, la :faq: est ton amie:
http://c.developpez.com/faq/c/?page=..._random_bornes
Thierry
Il serait plus simple d'avoir un tableau de caracteresCitation:
Envoyé par Franck.H
et te tirer l'indice au hasard.Code:
1
2 char tokens[] = { '*', '/', '+', '-' };
Heu oui exact :oops:Citation:
Envoyé par DaZumba
Citation:
Envoyé par conceicao
Fait de ton mieux et poste ton code.
- Définir un tableau de 4 char initialisé avec les caractères en question
- Tirer un nombre pseudo-aléatoire entre 0 et 3 (srand(), rand()) FAQ
- Utiliser ce nombre comme indice pour lire le caractère dans le tableau
- Apprendre le français.
Désolé, mais ça me fait super rire :mrgreen:Citation:
Envoyé par conceicao
tu rigole pour un rien toi mdrrrr , c'est un erreur de frappe!
tu doit pas t'embeter le soir , a la place d'une bonne comedie , tu viens ici non? mdrrr
Alors tu as le droit de te relire et de te corriger : http://www.developpez.net/forums/ima...ttons/edit.gifCitation:
Envoyé par conceicao
bon voila j'ai essayer de faire ca comme ceci :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 char operateur (long int nombre1 , long int nombre2) /*-----------------------------------------------*/ { long int resultat ; long int MAX; long int MIN; long int operateur ; char car = ' ' ; gotoxy (4, 1);printf("%ld %c %ld = ",nombre1,car,nombre2); operateur = (rand() % (4 - 0 + 1)); { if (operateur == 1) { car = '+'; resultat = nombre1 + nombre2; } if (operateur == 2) { car = '-'; resultat = nombre1 - nombre2; } if (operateur == 3) { car = '*'; resultat = nombre1 * nombre2; } if (operateur == 4) { car = '/'; resultat = nombre1 / nombre2; } if (operateur == 5) { car = '%'; resultat = nombre1 % nombre2; } return resultat ; } }
mais ce n'est surement pas correct car j'obtient des lettres bizarres a la place des opérateur :{
quelqu'un vois c'est quoi mon erreur?
PS: je n'ai pas utiliser la méthode que vous m'avez parlez car je ne l'ai pas encore apris.Merci d'avance
Bonsoir,
Quelle erreur ? AMHA, il y en a plusieurs. La première d'entre elles étant :Citation:
Envoyé par conceicao
- d'utiliser un compilateur ne donnant aucun avertissement ;
OU
- de désactiver l'affichage avertissements ;
OU
- de ne pas lire les avertissements donnés par le compilateur.
Indice : un "long int" n'est pas un "char".
C'est peut-être l'occasion d'apprendre ?Citation:
Envoyé par conceicao
Cordialement,
DS.
Salut,
Le bout de code suivant:
renvoie un nombre entre 0 et 4 (équivalent à rand() % 5). Ce n'est pas ce que tu veux dans le code que tu as posté. Si tu veux un nombre aléatoire entre 1 et 5:Code:
1
2 rand() % (4 - 0 + 1)
Par ailleurs, n'oublie pas d'initialiser le générateur de nombre pseudo-aléatoires un fois avant tout appel à rand() avec:Code:(rand() % 4) + 1
ThierryCode:
1
2
3 #include <time.h> /* ... */ srand((int) time(NULL));