Halo mam kłopot program idzie uruchomić jednak niczego nie zlicza w programie są 2 wartośći do inkrementoawania które mają się też inkrementować w funkcji i w funkcji która jest w funkcji i ich nowe wartości mają zapamiętane i przekazane do programu main oraz nie chce modyfikować pozostałych zmiennych.
void wypisz_liczby_na_ekran(int* tab1,int ilosc_gier1,int i1);
void liczenie_czestosci_liczb_w_zbiorze(long int* tabliczb1,int* tabprzedsortowaniem1,int ILOSC1,int k1);
void sort(int* tab, int n);
void poszukiwanie(int* tabprzedsortowaniem1,int* tabposortowana1,int* tab11,int* tabnumerow1);
void wczypisz_na_ekr(int* tab1,long int* tabliczb1,int i1,int k1);
int metoda_2(int* tab1,int *b1,int *przegrana1,int *przegrana12,int *przegrana13 ,
int *sum11,int *sum12,int *sum13,int *stawka_przegr1,int *stawka_wygr1,
int*wygrana1,int *wygrana12,int *wygrana13,int *k1 ,int *i1,int *ilosc_gier1,
long int* tabliczb1,int *METODA1,int *zliczaj11,int *zliczaj12,int *zliczaj13,int *zliczaj14,
int *zliczaj15,int *zliczaj16,int *zliczaj17,int *zliczaj18,int *zliczaj19);
int _tmain(int argc, _TCHAR* argv[])
{
cout <<"podaj ILOSC liczb do sprawdzania czestosci wystepowania w zbiorze np 120 kolejnych losowan -k"<<endl;
cin>>ILOSC;
cout <<"podaj ilosc gier --> ilosc_gier=ilosc_gier-ILOSC-10"<<endl;
cin>>ilosc_gier;
........
for (k=0; k<ilosc_gier+ILOSC+5; ++k)
{
fscanf(plik1,"%d", &z1 );
tabliczb[k]=z1;
srednia[k]=0.0;
}
fclose(plik1);
k=ILOSC;
//////
//petla glowna
////////
for(i=0;i<ilosc_gier;i++)
{
liczenie_czestosci_liczb_w_zbiorze(tabliczb,tabprzedsortowaniem,ILOSC,k);
for(j=0;j<37;j++)
{
tabposortowana[j]=tabprzedsortowaniem[j];
}
sort( tabposortowana, n);
//poszukanie numerow ktore wystepowaly najczesciej
poszukiwanie(tabprzedsortowaniem,tabposortowana,tab1,tabnumerow);
.........
wypisz_liczby_na_ekran(tab,ilosc_gier,i);
if((tabposortowana[36]+tabposortowana[35])>SREDNIA)
{
goto koniec1;
}
...............
WYNIK=metoda_2(tab,&b,&przegrana,&przegrana2,&przegrana3 ,
&sum1,&sum2,&sum3,&stawka_przegr,&stawka_wygr,
&wygrana,&wygrana2,&wygrana3,&k ,&i,&ilosc_gier,
tabliczb,&METODA,&zliczaj1,&zliczaj2,&zliczaj3,&zliczaj4,
&zliczaj5,&zliczaj6,&zliczaj7,&zliczaj8,&zliczaj9);
if (WYNIK==100)
{
goto koniec;
}
/////////////////
koniec1:
k++;
koniec:
} //koniec glownej petli
cout <<"przegranych -"<<przegrana<< endl;
cout <<"ile razy wygrano="<<wygrana<< endl;
cout <<"ile razy wypadly te same pod rzad="<<zliczaj1<< endl;
cout <<"ile razy wypadly prawie te same pod rzad="<<zliczaj2<< endl;
cout <<"ile razy wypadly 3 same pod rzad="<<zliczaj3<< endl;
cout <<"suma1="<<sum1<< endl;
} //koniec main
/////////////////////////////////////////
///////////////////////////////////////
int metoda_2(int* tab1,int *b1,int *przegrana1,int *przegrana12,int *przegrana13 ,
int *sum11,int *sum12,int *sum13,int *stawka_przegr1,int *stawka_wygr1,
int *wygrana1,int *wygrana12,int *wygrana13,int *k1 ,int *i1,int *ilosc_gier1,
long int* tabliczb1,int *METODA1,int *zliczaj11,int *zliczaj12,int *zliczaj13,int *zliczaj14,
int *zliczaj15,int *zliczaj16,int *zliczaj17,int *zliczaj18,int *zliczaj19)
{
int j,i2;
......
f(tab1[0]==tab1[1]||tab1[0]==tab1[2])
{
cout<<"*przegrana12 dla *METODA1="<<*METODA1<<endl;
wczypisz_na_ekr(tab1,tabliczb1,*i1,*k1);
*przegrana12++;
*sum12=*sum12-*stawka_przegr1*2;
for (j=37;j>0;j--)
{
tab1[j]=tab1[j-1] ;
}
*k1++;
*i1++;
if(*k1>=*ilosc_gier1||*i1>=*ilosc_gier1 )
{
return 100;
}
*b1=tabliczb1[*k1];
tab1[0]=*b1;
i2=*i1;
wypisz_liczby_na_ekran(tab1,*ilosc_gier1,i2);
//dwa takie same numery pod rzad
if(tab1[0]==tab1[1])
{
*zliczaj17++;
}
//dwa takie same numery prawie pod rzad
if(tab1[0]==tab1[2]&&tab1[0]!=tab1[1])
{
*zliczaj18++;
}
//3 pod rzad
if(tab1[0]==tab1[2]&&tab1[0]==tab1[1])
{
*zliczaj19++;
}
}
else
{
*sum13=*sum13+*stawka_wygr1*3;
*wygrana13++;
}
.........
}//koniec funkcji
void wypisz_liczby_na_ekran(int* tab1,int ilosc_gier1,int i1)
{
if( ilosc_gier1 <10000)
{
if(i1%500==0)
{
cout<< endl;
cout<<"ilosc gier- "<<i1<<endl;
cout <<" tab1[0]- "<<tab1[0]<<" tab1[1]- "<<tab1[1]<<" tab1[2]- "<<tab1[2]<< endl;
cout <<" tab1[3]- "<<tab1[3]<<" tab1[4]- "<<tab1[4]<<" tab1[5]- "<<tab1[5]<< endl;
cout <<" tab1[6]- "<<tab1[6]<<" tab1[7]- "<<tab1[7]<<" tab1[8]- "<<tab1[8]<< endl;
cout <<" tab1[9]- "<<tab1[9]<<" tab1[10]- "<<tab1[10]<<" tab1[11]- "<<tab1[11]<< endl;
cout <<" tab1[12]- "<<tab1[12]<<" tab1[13]- "<<tab1[13]<<" tab1[14]- "<<tab1[14]<< endl;
cout<< endl;
Sleep(500);
}
}
else
{
if(i1%1500==0)
{
cout<< endl;
cout<<"ilosc gier- "<<i1<<endl;
cout <<" tab1[0]- "<<tab1[0]<<" tab1[1]- "<<tab1[1]<<" tab1[2]- "<<tab1[2]<< endl;
cout <<" tab1[3]- "<<tab1[3]<<" tab1[4]- "<<tab1[4]<<" tab1[5]- "<<tab1[5]<< endl;
cout <<" tab1[6]- "<<tab1[6]<<" tab1[7]- "<<tab1[7]<<" tab1[8]- "<<tab1[8]<< endl;
cout <<" tab1[9]- "<<tab1[9]<<" tab1[10]- "<<tab1[10]<<" tab1[11]- "<<tab1[11]<< endl;
cout <<" tab1[12]- "<<tab1[12]<<" tab1[13]- "<<tab1[13]<<" tab1[14]- "<<tab1[14]<< endl;
cout<< endl;
Sleep(200);
}
}
}
poprawiłem formatowanie
zmienna k jest poczebna po to żeby pobierać co pętlem głowną nastempnąliczbęz tablicy
w tym programie jest ważne żeby pamiętało k oraz i z funkcji w których też się zmieniają.
k-do tablicy
i - do ilości powtórzeń pętli głównej do ilosc_gier
program działał prawidłowo jak to co jest w metoda2 było w funkcji main
chcę to zrobić w funkcji bo chcętakich funkcji zrobić z 10 ktore będąróżniły się metodą analizowania kolejnych cyfr w tabelach czyli tym:
if(tab1[0]==tab1[1]||tab1[0]==tab1[2])
bedzie np tak :
if(tab1[0]==tab1[1]||tab1[0]==tab1[2]||tab1[0]==tab1[3])
if(tab1[0]==tab1[1]||tab1[0]==tab1[2]||tab1[0]==tab1[3]||tab1[0]==tab1[4])
czyli czy aktualnie wylosowany numer z tablicy tabliczb[k] nie jest w jakies z tych tablic