Générer plusieurs nombres aléatoires entre deux bornes [Résolu/Fermé]

Signaler
Messages postés
487
Date d'inscription
samedi 13 juin 2015
Statut
Membre
Dernière intervention
6 novembre 2020
-
Messages postés
487
Date d'inscription
samedi 13 juin 2015
Statut
Membre
Dernière intervention
6 novembre 2020
-
Bonjour,
J'aimerais savoir comment générer plusieurs nombres aléatoires entre deux bornes en langage C, j'utilise Code::Blocks

J'ai écrit ceci mais Resultat1 et Resultat2 sont les mêmes...

if (TypeDe ==4)
{
int Resultat1 = 0;
const int MAX = 4, MIN = 1;
srand(time(NULL));
Resultat1 = (rand() % (MAX - MIN + 1)) + MIN;

int Resultat2 = 0;
srand(time(NULL));
Resultat2 = (rand() % (MAX - MIN + 1)) + MIN;

int ResultatTot = Resultat1 + Resultat2 + Bonus;

printf ("\n\n %d + %d + %d = %d PV\n\n\n", Resultat1, Resultat2, Bonus, ResultatTot);
}



2 réponses

Messages postés
609
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
24 juin 2016
41
Bonjour
Essayer ceci
à bientôt

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

/*
     Fonction qui génère des nombres 
     aléatoires compris entre deux bornes.
*/
int f_get_rand( const int min, const int max ){
    static int iflag;
    if( !iflag ){
        iflag = 1;
        srand( (unsigned int)time(NULL) );
    }
    return ( min + (rand() % (max - min + 1) ) );
}

/*
    Fonction principale 
*/
int main( void ){
      
    int ret_1 = 0;
    int ret_2 = 0;
    register int i = 0;                 
    for( i = 0; i < 10; i ++ ){
        
        
        ret_1 = f_get_rand( 1, 3 );
        ret_2 = f_get_rand( 10, 50 );
        
        fprintf( stdout, "Ret_1\t:%d\nRet_2\t:%d\n", 
            ret_1, ret_2 );
    }
    
    return EXIT_SUCCESS;
}

Messages postés
487
Date d'inscription
samedi 13 juin 2015
Statut
Membre
Dernière intervention
6 novembre 2020
79
J'ai trouvé plus simple merci:


if (TypeDe ==4)
{
int Resultat1 = 0;
int Resultat2 = 0;
srand(time(NULL));
Resultat1 = 1+rand() % (4 + 1);
Resultat2 = 1+rand() % (4 + 1);
int ResultatTot = Resultat1 + Resultat2 + Bonus;

printf ("\n\n %d + %d + %d = %d PV\n\n\n", Resultat1, Resultat2, Bonus, ResultatTot);