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)

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);  		
}
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
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);
}
Cela marche bien pour 5 nombres mais cela devient très vite une usine à gaz si je dois traiter 100 entiers de 1 à 100.

Existe-t-il une solution plus simple de répondre à mon besoin ?

Merci bien pour vos contributions.