Kezdőoldal » Számítástechnika » Programok » Lenne egy 5-ös lottó programom...

Andro1994 kérdése:

Lenne egy 5-ös lottó programom dev c++ ban és az lenne a problémám hogy le írást kell írni mint pl. így "srand (time (NULL) ) ; //véletlen számokat generáljon" Valaki le írná nekem ezeket?

Figyelt kérdés

A hiba az lenne h 5számot kéne ki írnia és 10et ír ki mi lehet a probléma?



******

#include <stdio.h>

#include <time.h>

#include <stdlib.h>


int main()

{

int lotto[5],csere;

srand(time(NULL)); //veletlen szamokat generaljon

printf("A nyertes lotto szamok: ");

for (int i=0; i<5; i++)

{

lotto[i]=rand()%90+1; //aktualis szam generalasa

printf("%d, ", lotto[i]);

}

for (int i=0;i<=5;i++)

{

for (int j=i;j<5;j++)

{ //osszehasonlitja mindet minddel

if (lotto[i]>lotto[j])

{ //ha rossz sorrendben vannak, megcsereli oket

csere=lotto[i];

lotto[i]=lotto[j];

lotto[j]=csere;

}

}

}

printf(" ");

for (int i=0;i<5;i++)

{

printf("%d, ", lotto[i]);

}

getchar();

return 0;

}



#program #lottó #dev c ++
2013. ápr. 7. 10:56
 1/1 anonim válasza:

C++-ban nem nagyon vagyok otthon, de azért megpróbálok segíteni.


Azért ír ki 10 számot a progi, mert 2 for ciklus fut le, amiben printf van. Az első a generálás sorrendjében írja ki a számokat, míg a második sorbarendezve, így jön ki a 10. Egyszerűen vedd ki a generálásból a printf-et. De nem is ez ezzel a baj, hanem az, hogy mivel nincs semmi ami ellenőrizné, hogy a kiválasztott szám szerepel-e már a tömbben, így akár az is meglehet (bár szinte 0 az esélye), hogy mind az 5 szám ugyanaz lesz. Ezt valahogy így kellene megoldani:


bool ok;

int szam;


for (int i=0; i<5; i++) {

do {

szam = rand()%90+1; //szám generálása

ok = true; //minden ok

for (int j=0; j<i; j++) { //megnézzük az eddigi számokat

if (lotto[j]==szam) { //hogy nem-e egyenlőek a most kiválasztottal

ok = false; //ha igen, baj van

break; //felesleges tovább vizsgálni, kiugrunk a ciklusból és megyünk vissza a szam = rand... sorra

}

}

} while (ok); //addig csináljuk, amíg nem kapunk olyan számot, ami nincs benne a tömbben

lotto[i] = szam;

}


Továbbá egy ekkora tömb esetén még nem feltűnő, de a későbbiekben ha sorba kell rendezni bármit is, a buborékos sorrendezést el KELL felejteni. Az, hogy ezt tanítják a suliban egy dolog, de valójában semmire sem jó, annyira lassú. Ha komolyabban akarsz foglalkozni a programozással, ajánlom figyelmedbe a MergeSort vagy QuickSort algoritmusok tanulmányozását ha sorrendezésről van szó.


Üdv

2013. ápr. 18. 00:05
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!