Remise a zero de fonction

Signaler
Messages postés
2
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
16 août 2003
-
Messages postés
126
Date d'inscription
mercredi 18 juillet 2001
Statut
Membre
Dernière intervention
27 octobre 2004
-
j'utilise une fonction de gestion aléatoire de chiffre type:

int fonction (int,int)

cette fonction renvoi une variable res;

dans main() j'utilise cette fonction a plusieur reprise mais celle ci me donne alors le même chiffre pour chaque parametre comment puis-je faire pour que ma fonction me donne un chiffre différent (donc aléatoire) a chaque fois que je l'appelle

6 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
si tu utilises rand() tu dois initialiser avant avec srand(valeur);
BruNews, ciao...
Messages postés
221
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
11 décembre 2008

de même que si tu utilise random() initialise le générateur de nombres aléatoires par randomize().
a+
Messages postés
2
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
16 août 2003

voici mon code avec mes question merci de me donner votre avis:

#include <stdio.h>
#include <stdlib.h>
#include 
#include <time.h>

using namespace std;

int Aleatoire()
{
    
   
   srand((int) time(NULL)); 
   int i = (rand() % 6)*3; //  besoin d'aide pour que i ne soit pas égal a 0

   return i;
    
}

int main()
{
 char b;
 
     cout << " a :" << Aleatoire()<< endl; // ces deux variables prennent les
     cout << " b :" << Aleatoire()<< endl; // même valeur
     
    cin >> b ; //fonction d'attente pour éviter l'arret de l'affichage.
     
 return 0;   
}  

Messages postés
221
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
11 décembre 2008

essai ça dans ton main()
int main()
{
char b;
randomize();
cout << " a :" << Aleatoire()<< endl; // ces deux variables prennent les
cout << " b :" << Aleatoire()<< endl; // même valeur

cin >> b ; //fonction d'attente pour éviter l'arret de l'affichage.

return 0;
}

a+
Messages postés
221
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
11 décembre 2008

j'avais pas fait gaffe mais si tu fait ce que je t'ai dit avec randomize() vire le srand(). De toute manière se n'est pas la qu'il faut le mettre, on initialise le générateur de nombres aléatoires (randomize(), srand()) qu'une fois et pas à chaque appel de ta fonction.
a+
Messages postés
126
Date d'inscription
mercredi 18 juillet 2001
Statut
Membre
Dernière intervention
27 octobre 2004

rand() % 6 est un chiffre entre 0 et 5 (reste de la division euclidienne de rand() par 6)

donc rand()%6+1 est entre 1 et 6 ...

Cordialement,

ADPro22