Lotto

Contenu du snippet

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&#8218;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&#8218;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 ...

A voir également

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.