LOTO (EN C)

Signaler
-
cmarsc
Messages postés
455
Date d'inscription
mercredi 6 mars 2002
Statut
Membre
Dernière intervention
18 décembre 2003
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/9144-loto-en-c

cmarsc
Messages postés
455
Date d'inscription
mercredi 6 mars 2002
Statut
Membre
Dernière intervention
18 décembre 2003

salut,
#include <time.h>
#include <stdlib.h>
il faut initialiser le générateur de nombres pseudo aléatoire
srand((unsigned) time(NULL));
mhidoo
Messages postés
4
Date d'inscription
jeudi 15 avril 2004
Statut
Membre
Dernière intervention
19 novembre 2005

SALUT
moi je vouderais faire une fonction de mélange d'un paquet de carte de 104 cartes, mais avec ce que j'ai fais j'ai toujours le mm paquet mélangé
aidez moi svp (je ss debutant en C)
cleg123
Messages postés
1
Date d'inscription
samedi 7 août 2004
Statut
Membre
Dernière intervention
10 août 2004

Beaucoup plus court et plus efficace ( d'accord sans la sortie écran formattée... )

int main(int nb, char **argv)
{
unsigned char tab[49];
int i,max,indice;

for(i=0;i<49;i++)
{ tab[i] = 1; }

srand(time(0));

for( max=1 ; max < 8 ; )
{
indice = rand()%49;
if( tab[indice] != 0 )
{
printf("Numéro %1d : %2d \n",max, (indice+1) );
tab[indice] = 0; // On flambe ce numéro.
max++;
}
}

return(0);
}


L'idée reste ultra simple : en fait on initialise un tableau de 49 [nombre de numéros possible en fait ] et on génére aléatoirement l'indice du tableau qui va sortir. Si la valeur du tableau à l'indice qui vient de sortir vaut 1 alors le numéro n'est pas sorti donc on affiche puis on réinitialise la case à 0 ( en clair ce numéro ne pourra plus sortir ). On continue tant que l'on a pas nos 7 chiffres. Sur ce type de programme, cette structure fonctionne à merveille mais cela cache en fait une liste chainée...
cmarsc
Messages postés
455
Date d'inscription
mercredi 6 mars 2002
Statut
Membre
Dernière intervention
18 décembre 2003

il faut egalement <time.h> avec randomize
tu as un prototype int num() il faudrait écrire int num(void); (c'est du C et non du C++) et le placer avant main.
main return 0; et int num return ? (int)