Bonjour,
Je cherche à couvrir chaque nombre allant de 1 à 100.
J'utilise cette solution qui est loin d'être optimale car je pourrais pas couvrir tous les nombres (le tirage pouvant être redondant)
J'ai pensé ensuite une fonction aléatoire de ce type :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 int i; srand(time(NULL)); for (i = 0; i < 99; i++) { num = (rand() % 99) + 1; printf("Nombre %02d\n",num); }
Cela marche bien pour 5 nombres mais cela devient très vite une usine à gaz si je dois traiter 100 entiers de 1 à 100.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 void aleatoire() { int i1,i2,i3,i4, i5; srand (time (NULL)); i1=(rand() % 99) + 1; do{ i2=(rand() % 99) + 1; }while(i2==i1); do{ i3=(rand() % 99) + 1; }while(i3==i1 || i3==i2); do{ ch4=(rand() % 99) + 1; }while(i4==i1 || i4==i2 || i4==i3); do{ ch5=(rand() % 99) + 1; }while(i5==i1 || i5==i2 || i5==i3 || i5==i4); printf("Nombre 1: %d\nNombre 2: %d\nNombre 3: %d\nNombre 4: %d\nNombre 5: %d\n",i1,i2,i3,i4,i5); }
Existe-t-il une solution plus simple de répondre à mon besoin ?
Merci bien pour vos contributions.
Partager