Question pour créer un tableau

Troape Messages postés 1 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 4 octobre 2004 - 4 oct. 2004 à 01:06
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 - 4 oct. 2004 à 01:19
J'ai créer un prog en C sous dev-cpp qui permet d'afficher 7 nombres au hasard.
Je me suis rendu compte que des nombres peuvent s'afficher plusieurs fois.
Car il ne verifie que le dernier, mais pas ceux qui precedes le dernier.
Ma solution est de les mettre dans un tableau au fur et a mesure et de verifier si un nombre est deja sorti pour en refaire sortir un autre.
Mais le probleme (ben oui ya un probleme :( ... ) je ne sai pas appliqué ma solution et c'est la que j'aurai besoin d'aide.
Voici mon programme:

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

int main (void)
{
int a, b, i;
a = 0;
do
{
while(i == b)
{
srand((unsigned) time(NULL));
i = rand() % 30 + rand() % 30 + rand() % 20 - rand() % 20;
}
b = i;
if (i < 50) if(i>0)
{
printf("%d\n", i);
a = a +1;
}
}while(a<7);
return 0;
}

Au passage jsuis un debutant.

1 réponse

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
4 oct. 2004 à 01:19
int main()
{
// tableau avec les nombres choisis
int tab[7];

// init génératuer aléatoire (une seule fois !!!)
srand((unsigned) time(NULL));

// boucle de génération des nombres
for(int i = 0; i < 7; i++)
{
int val;
do
{
// génération nombres
val = rand();

// recherche dans les nombres précédents
int found = 0;
for(int j = 0; j < i; j++)
{
if(tab[j] == val)
found = 1;
}

}while(found);

// affectation nouvelle valeur
tab[i] = val;
}
}

a peu de chose près ça doit être bon
0
Rejoignez-nous