Hinamarth

Superenalotto

Jan 19th, 2012
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.16 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<math.h>
  4.  
  5. void estrazione(int [], int [], int);
  6.  
  7. void vincite( void (*)(int [], int [], int), int [], int [], int[], int[], int );
  8.  
  9. void estrazione( int estratti[], int tester[], int i ){
  10.   int n;
  11.   estratti[i]=lrand48()%90+1;
  12.   tester[i]=estratti[i];
  13.   for(n=i-1; n>0; n--){
  14.     while(estratti[i]==tester[n]){
  15.       estratti[i]=lrand48()%90+1;
  16.     }
  17.   }
  18. }
  19.  
  20. void vincite( void (*f)(int [], int [], int), int giocati[], int estratti[], int tester[], int vittorie [], int n){
  21.   int i, j, num=0;
  22.   for(i=0; i<n; i++){
  23.     f( giocati, tester, i );
  24.   }
  25.   for(i=0; i<n; i++){
  26.     for(j=0; j<n; j++){
  27.       if(giocati[i]==estratti[j]){
  28.     num++;
  29.       }
  30.     }
  31.   }
  32.   if(num>=3){
  33.     printf("La giocata vincente è stata: \n");
  34.     for(i=0; i<n; i++){
  35.       printf("%d ", giocati[i]);
  36.     }
  37.     printf("\n");
  38.     if(num==3){
  39.       vittorie[0]++;
  40.     }
  41.     if(num==4){
  42.       vittorie[1]++;
  43.     }
  44.     if(num==5){
  45.       vittorie[2]++;
  46.     }
  47.     if(num==6){
  48.       vittorie[3]++;
  49.     }
  50.   }
  51. }
  52.  
  53. main(){
  54.   int estratti[6]={0}, giocati[6]={0}, tester[6]={0}, vittorie[4]={0}, N, i;
  55.   srand48(time(0));
  56.   printf("Il programma simula il gioco del superenalotto, nel quale, per vincere, devono essere indovinati almeno 3 numeri di una sestina composta da interi compresi tra 1 e 90./n");
  57.   printf("Prima di iniziare a giocare ho bisogno che tu inserisca il numero N di giocate che vuoi effettuare. Bada bene, N deve essere compreso tra 10 e 10000.\n N = ");
  58.   scanf("%d", &N);
  59.   while(N<10 || N>10000){
  60.     printf("Il valore di N è errato! Reinseriscilo! \n N = ");
  61.     scanf("%d", &N);
  62.   }
  63.   printf("La sestina vincente è: \n");
  64.   for(i=0; i<6; i++){
  65.     estrazione( estratti, tester, i );
  66.     printf("%d ", estratti[i]);
  67.   }
  68.   printf("\n");
  69.   for(i=0; i<N; i++){
  70.     vincite( estrazione, giocati, estratti, tester, vittorie, 6);
  71.   }
  72.   printf("Le terzine vinte sono state %d / %d. \n", vittorie[0], N);
  73.   printf("Le quartine vinte sono state %d / %d. \n", vittorie[1], N);
  74.   printf("Le cinquine vinte sono state %d / %d. \n", vittorie[2], N);
  75.   printf("Le sestine vinte sono state %d / %d. \n", vittorie[3], N);
  76. }
Advertisement
Add Comment
Please, Sign In to add comment