I want to check 1000 number draws (5 different numbers [42 max value]) and make a camparison to the pattern.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 42
#define BETS 1000
#define VAL_BET 5
void sort_Bet(int *tab, int size)
{
int i,j,k;
for(i=1;i<size;i++)
{
j=i;
k=tab[j];
while((j>0) && (tab[j-1]>k))
{
tab[j]=tab[j-1];
j--;
}
tab[j]=k;
}
}
int *tab_Bet;
int **tab_Game;
void init_Arrays()
{
int i,j,k;
int temp_tab_Bet[MAX];
int temp_tab_Game[BETS][MAX];
tab_Bet=(int*)malloc(VAL_BET*sizeof(int));
tab_Game=(int**)malloc(BETS*sizeof(int*));
for(i=0;i<BETS;i++)
tab_Game[i]=(int*)malloc(VAL_BET*sizeof(int*));
for(i=0;i<MAX;i++)
temp_tab_Bet[i]=0;
for(i=0;i<BETS;i++)
for(j=0;j<MAX;j++)
temp_tab_Game[i][j]=0;
i=0;
do
{
do
{
k=rand()%MAX;
}while(temp_tab_Bet[k]!=0);
temp_tab_Bet[k]=1;
tab_Bet[i]=k+1;
i++;
} while(i<VAL_BET);
sort_Bet(tab_Bet,VAL_BET);
i=0;
do
{
j=0;
do
{
do
{
k=rand()%MAX;
}while(temp_tab_Game[i][k]!=0);
temp_tab_Game[i][k]=1;
tab_Game[i][j]=k+1;
++j;
}while(j<VAL_BET);
++i;
}while(i<BETS);
for(i=0;i<BETS;i++)
sort_Bet(tab_Game[i],VAL_BET);
}
void destroy_Arrays()
{
int i;
for(i=0;i<BETS;i++)
free(tab_Game[i]);
free(tab_Game);
free(tab_Bet);
}
int is_Five(int *tab1, int *tab2, int size)
{
int i,j,sum;
sum=0;
i=0;
do
{
for(j=0;j<size;j++)
if(tab1[j]==tab2[i])
++sum;
++i;
}while(i<size);
if(sum==5)
return 1;
else
return 0;
}
int is_Four(int *tab1, int *tab2, int size)
{
int i,j,sum;
sum=0;
i=0;
do
{
for(j=0;j<size;j++)
if(tab1[j]==tab2[i])
++sum;
++i;
}while(i<size);
if(sum==4)
return 1;
else
return 0;
}
int is_Three(int *tab1, int *tab2, int size)
{
int i,j,sum;
sum=0;
i=0;
do
{
for(j=0;j<size;j++)
if(tab1[j]==tab2[i])
++sum;
++i;
}while(i<size);
if(sum==3)
return 1;
else
return 0;
}
int is_Two(int *tab1, int *tab2, int size)
{
int i,j,sum;
sum=0;
i=0;
do
{
for(j=0;j<size;j++)
if(tab1[j]==tab2[i])
++sum;
++i;
}while(i<size);
if(sum==2)
return 1;
else
return 0;
}
int is_One(int *tab1, int *tab2, int size)
{
int i,j,sum;
sum=0;
i=0;
do
{
for(j=0;j<size;j++)
if(tab1[j]==tab2[i])
++sum;
++i;
}while(i<size);
if(sum==1)
return 1;
else
return 0;
}
int is_Zero(int *tab1, int *tab2, int size)
{
int i,j,sum;
sum=0;
i=0;
do
{
for(j=0;j<size;j++)
if(tab1[j]==tab2[i])
++sum;
++i;
}while(i<size);
if(sum==0)
return 1;
else
return 0;
}
int main(int argc, char **argv)
{
int i;
int win_0,win_1,win_2,win_3,win_4,win_5;
win_0=win_1=win_2=win_3=win_4=win_5=0;
srand(time(NULL));
init_Arrays();
for(i=0;i<BETS;i++)
{
if(is_Zero(tab_Game[i],tab_Bet,VAL_BET))
++win_0;
if(is_One(tab_Game[i],tab_Bet,VAL_BET))
++win_1;
if(is_Two(tab_Game[i],tab_Bet,VAL_BET))
++win_2;
if(is_Three(tab_Game[i],tab_Bet,VAL_BET))
++win_3;
if(is_Four(tab_Game[i],tab_Bet,VAL_BET))
++win_4;
if(is_Five(tab_Game[i],tab_Bet,VAL_BET))
++win_5;
}
printf("Your BET: (5 [42])");
printf("\n");
for(i=0;i<VAL_BET;i++)
printf("%d ",tab_Bet[i]);
printf("\n----------------------------------------------\n");
printf("For 1000 draws: \n\n");
printf(" 5 - %d\n",win_5);
printf(" 4 - %d\n",win_4);
printf(" 3 - %d\n",win_3);
printf(" 2 - %d\n",win_2);
printf(" 1 - %d\n",win_1);
printf(" 0 - %d\n",win_0);
destroy_Arrays();
return 0;
}
Brak komentarzy:
Prześlij komentarz