Tirage du lotto ... un petit prob avec le calcul des rangs (évidente surement mais je ne la vois pas)
rang 1 => grille identique ( le pactole !!! )
rang 2 => 6 chiffres avec le complémentaire
rang 3 => 5 chiffres sans le compléemenatires
rang 4 => 4 chiffres sans le complémentaire
rang 5 => 3 chiffres sans compl.
rang 0 => aucun chiffre gagant !!!!
Source / Exemple :
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <ctype.h>
#define nmax 25
#define njeux 100
struct el
{ int jeu[8][2];
int compl;
int quant;
int test; /* verifie le gain sans le compl‚mentaire */
int rang;
} tjeu[njeux];
int tirage[8];
void remplir ()
{ int i,j;
clrscr();
randomize();
for (i=0;i<7;i++)
{ tirage[i]=0; }
for (i=0;i<7;i++)
{ tirage[i]=random(nmax); }
tirage[i+1]='\0';
for (i=0;i<100;i++)
{ for (j=0;j<7;j++)
{ tjeu[i].jeu[j][0]=random(nmax);
}
tjeu[i].jeu[j+1][0]='\0';
}
printf(" grilles remplies \n");
getch();
}
int check (int i)
{ int j;int ok=0;
for (j=0;j<7;j++)
{ if (tjeu[i].jeu[j][0] >1 && tjeu[i].jeu[j][0] <nmax) ok=1;
else ok=0;j=6;
}
return ok ;
}
void calc_res ()
{ int k,i,nbok,j;
nbok=0;
clrscr();
i=0;
j=0;
while (i<njeux)
{
for (j=0;j<7;j++) /* parcourt le tableau tirage */
{ for (k=0;k<7;k++) /* parcourt le tableau [k] */
{ if (tjeu[i].jeu[k][0]==tirage[j] && tjeu[i].jeu[k][1]==0)
{ nbok++;k=6;tjeu[i].jeu[k][1]=1;}
else nbok+=0;
}
/* verification du rang */
if (tjeu[i].jeu[k][0]==tirage[j] && j==6)
{ tjeu[i].compl=1;}
else tjeu[i].compl=0;
if (nbok==7)
{ tjeu[i].test=1;}
else if (k<6 && nbok==5)
{ tjeu[i].test=2; }
else if (k<5 && nbok==5)
{ tjeu[i].test=3;}
else if (k<5 && nbok==4)
{ tjeu[i].test=4; }
else if (k<5 && nbok==3)
{ tjeu[i].test=5; }
else tjeu[i].test=0;
}
tjeu[i].quant=nbok;
nbok=0;
i++;
}
printf(" fin des calculs ");
getch();
}
int affichage ()
{
int i;
clrscr();
printf(" grille du tirage :\n\n");
printf(" %d-%d-%d-%d-%d-%d-%d + %d \n\n",tirage[0],tirage[1],tirage[2],tirage[3& #93;,tirage[4],tirage[5],tirage[6]);
textcolor(15);
printf(" affichage des grilles gagantes \n\n");
printf("--------------------------------------\n\n");
for (i=0;i<10;i++)
{ printf(" grille nø%d %d-%d-%d-%d-%d-%d + %d rang nø%d %d chiffres gagants \n",i,tjeu[i].jeu[0][0],tjeu[i].jeu[1 ][0],tjeu[i].jeu[2][0],tjeu[i].jeu [3][0],tjeu[i].jeu[4][0],tjeu[i 3;.jeu[5][0],tjeu[i].jeu[6][0],tjeu 1;i].test,tjeu[i].quant);
}
getch();
return 0;
}
int trier ()
{ int i,j,tmp,candidat;
tmp=0;candidat=0;
for (i=0;i<njeux;i++)
{ tmp=tjeu[i].quant;
for (j=i+1;j<njeux;j++)
if (tjeu[j].quant > candidat)
tmp=candidat;
candidat=tjeu[j].quant;
tjeu[j].quant=tmp;
}
/* fin du tri */
printf(" grilles tri‚es ! \n");
getch();
return 0;
}
int menu ()
{ char c=NULL;
clrscr();
while (c!='5')
{ clrscr();
printf(" remplir grilles :[1] \n");
printf(" calculer resultats: [2] \n");
printf(" trier les grilles : [3] : \n");
printf(" afficher les grilles gagnantes :[4] \n");
printf(" Pour quitter [5] \n");
c=toupper(getch());
switch(c)
{ case '1': clrscr();remplir();break;
case '2' :clrscr();calc_res();break;
case '3':clrscr();trier();break;
case '4':clrscr();affichage();break;
};
}
clrscr();
printf(" \n\n\n\n\n\n");
printf(" Fin du programme ... \n");
getch();
return 0;
}
int main ()
{
menu();
return 0;
}
Conclusion :
je le mettrais à jour dans le courant de la semaine si tout va bien ...
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.