Kezdőoldal » Számítástechnika » Programozás » Nyerő számok összehasonlítása...

Nyerő számok összehasonlítása a kisrolsoltakkal?

Figyelt kérdés

a programom random kisorsol annyi 1 és 45 számból álló 6 számjegyű sort, amennyit kérek tőle ( Hatos lottó ), plusz még egyet, ami a nyertes szám lesz. Van rá egy programom, ami megcsinálja mindezt, viszont a találatok számát nem tudom meghatározni. Ebben kérnék segítséget.


void computerGenerator() // megkerem a gepet, hogy generaljon le nekem random szamokat

{

int array[6]={0};

int arrlen,nyer=0;



arrlen = sizeof(array)/sizeof(int);



for(int x=-1; x < arrlen; x++ )

{

array[x] = (int) rand()%45;

for(int y=-1; y<x; y++)

{

if (array[y] == array[x])

{

array[x] = (int) rand()%45; // eggyezes eseten uj szamot generalok

y=-1;

//nyer++; ?????


} //if()


} //for (y)


} //for (x)

cout <<" "<<endl;

system("COLOR 04");

cout <<"\t\t\t\t\t\xDB " <<nyer<<" \xDB"<<endl;

// bubi rendezes, mert miert ne



for(int y=-1; y < arrlen-1; y++ )

{

for(int x=-1; x < arrlen-1; x++ )

{

if (array[x] > array[x+1])

{

int temp;

temp = array[x];

array[x] = array [x+1];

array [x+1] =temp;

} //

} //

} //



sorKiiras(array);

} // veget er a generator

void nyeroSzamok() // Legenegaljuk a nyero szamokat

{

int array[6]={0};

int hossz,nyer=0;



hossz = sizeof(array)/sizeof(int);



for(int x=0; x < hossz; x++ )

{

array[x] = (int) rand()%45;

for(int y=0; y<x; y++)

{

if (array[y] == array[x]) // ugyanazt a szamot nem generaljuk le megint

{

array[x] = (int) rand()%45; // kerek masik szamot

y=0;

//nyer++;

} //if()

} //for (y)

} //for (x)


//cout <<" "<<nyer<<endl;

// rendezes

/** Ettol a programtol megszolalt a koliban a tuzriaszto*/


for(int y=0; y < hossz-1; y++ )

{

for(int x=0; x < hossz-1; x++ )

{

if (array[x] > array[x+1])

{

int temp;

temp = array[x];

array[x] = array [x+1];

array [x+1] =temp;

} // if

} // for

} // for

cout<<"\n\nA nyero szamok: "<<endl;

cout<<"--- ------- ----- ------- ---- "<<endl;

sorKiiras(array);

} // generalas vege

void sorKiiras(int*arrpt) // vege a sor kirasanak

{



for (int x=0; x<6; x++)

{

cout<<" "<< arrpt[x];

}

cout<<" "<<endl;

}



2015. márc. 5. 21:57
 1/7 A kérdező kommentje:
2015. márc. 5. 21:58
 2/7 anonim ***** válasza:
ezt így nehéz át nézni, inkább ide rakd be, és küld el nekünk: pastebin.com
2015. márc. 5. 21:59
Hasznos számodra ez a válasz?
 3/7 A kérdező kommentje:
.org -ra tettem fel. Amit ajánlottál azt nem engedte.
2015. márc. 5. 22:01
 4/7 A kérdező kommentje:
2015. márc. 5. 22:08
 5/7 A kérdező kommentje:
Valami ötlet?
2015. márc. 5. 23:40
 6/7 coopper ***** válasza:

Szia.


1. A legegyszerübbb fapados módszer : két ciklusban minden nyerőszámot összehasonlitasz minden kisorsolt számmal. (Ilyenkor talán még rendezni sem kell)


Sorbarendezed a kihúzott (beadott) számokat, illetve a nyerőszámokat is sorbarendezed.


Aztán innentől kezdve nagyon sok megoldás van arra, hogy megállapitsd azt, hogy hány darab nyerőszám van :


2. Berakod a nyerőszámokat egy halmazba (nem tudom hogyan van a C-hez közeli nyelvekben a halmaz) és egy sima IF-el megvizsgálod, hogy van-e találat a kisorsolt számokból a halmazban (1 ciklus)


3. Ugyanilyen halmaz helyettesitésre alkalmas, hogy a nyerőszámokat átrakod egy stringbe egy elválasztókarakterrel (mind az 6-ot : pl. 1,15,25,35,36,40, ) és a kisorsolt számokat pedig keresed a stringben. 2x1 ciklus.


4. A sorbarendezés miatt simán lehet lépkedni a kisorsolt illetve a nyerő számok listájában (1 ciklus illetve két pozició) feltetellel eldöntöd, hogy éppen melyiket kell léptetni. A kisorsolt számok kozöt, vagy a nyerőszámok között vagy találat esetén mindkettőt.


Sok sikert.

üdv.

2015. márc. 6. 07:08
Hasznos számodra ez a válasz?
 7/7 SimkoL ***** válasza:

Szétszedtem pár függvényre és eljárásra a jobb áttekinthetőség érdekében:

[link]

2015. márc. 6. 11:28
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!