Rand()
Floriano
-
Utilisateur anonyme -
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++?
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
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 :
Bon courage :-)
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 :-)
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;
}
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 ?
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 ?