Rand()

Floriano -  
 Utilisateur anonyme -
Bonjour,

je suis débutant en programmation en c++.

voilà je cherche à utiliser rand() pour afficher à l'écran 3 nombres au hasard dans un tableau à une dimension:
ex :
je voudrai afficher seulement 3 de ces nombres aléatoirement : 10,25,50,75,100.

Est-ce possible ? Comment pourrai-je faire en C++?

3 réponses

Utilisateur anonyme
 
Il faut que tu crées un nombre aléatoire entre 0 et la taille de ton tableau. Pour ce faire utilises la commande suivante :
int nb;
nb = ((rand()/RAND_MAX) * (TAILLE_TABLEAU)) +1; 
Ensuite il te suffit d'afficher la valeur de tab[nb] 3 fois de suite.

Bon courage :-)
0
Utilisateur anonyme
 
Petit exemple :
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    int tab[5];
    int cpt = 0;
    
    for(int i=0;i<5;i++){
            tab[i] = cpt + 50;
            cpt += 50;
    }
    
    int nb;
    for(int j=0;j<10;j++){
        nb = ((rand()/(double)RAND_MAX) * (5)); 
        cout << "tab[" << nb << "] = " << tab[nb] <<endl;
    }
    system("PAUSE");
    return EXIT_SUCCESS;
}
0
Floriano
 
Merci pour le conseil ça m'a été utile ;), hélas lorsque je compile et que j'exécute mon programme il m'affiche toujours les mêmes nombres donc la fonction random() ne marche pas puisque je veux, qu'à chaque fois que je compile mon programme, des nombres qui doivent être différent à chaque exécution du programme.
le programme est le suivant :

typedef int t_tab [10];
typedef int t_nb [4];

int main (int argc, char *argv[])
{
// Déclaration locale
t_tab chiffre={1,2,3,4,5,6,7,8,9,10};
t_nb nombre={25,50,75,100};
int i,j,cpt,N,C;



// Action
for(i=0;i<4;i++)
{
C= (rand()%10)+1;
cout<<"chiffre["<<C<<"] : "<<chiffre[C]<<endl;
}

cpt=0;
srand( time(0) );
for(i=0;i<5;i++)
{
nombre[i]=cpt + 25;
cpt=cpt+25;
}

for(j=0;j<2;j++)
{
N=((rand()/(double)RAND_MAX)*(4-1))+1;
cout<<"nombres["<<N<<"] :" <<nombre[N]<<endl;
}

// retour au sytème d'exploitattion
cout << endl;
system("pause");
return (0);
}

Comment avoir des nombres différents à chaque exécution ?
0
Utilisateur anonyme
 
Tu n'es pas très clair dans ton explication. Essaye de me dire ce que doit faire ton programme :

A quoi correspondent chiffre et nombre ?
Pourquoi fais-tu une boucle de i=0 --> i=5 sur nombre alors qu'il ne contient que 4 éléments ?
etc..
0