Kezdőoldal » Számítástechnika » Programozás » C++ hol a hiba? Próbálom szép...

C++ hol a hiba? Próbálom szép lassan felépíteni de kicsit elakadtam. Valamiért a ciklusban mindig ugyanazt a véletlen számot használja.

Figyelt kérdés

#include <iostream>

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

#include <string>


using namespace std;


class Etlap {

int z, j;

public:

void lista (int);

void listazas (int);


} et;


int veletlen (int x, int y)

{

int rd;

srand (time(NULL));

rd=rand() % x+y;

return rd;

}


void Etlap::lista (int z)

{

switch (z)

{

case 1:

cout << "Porkolt" << endl;

break;

case 2:

cout << "Leves" << endl;

break;

case 3:

cout << "Fozelek" << endl;

break;

case 4:

cout << "Sutemeny" << endl;

break;

case 5:

cout << "Salata" << endl;

break;

}

}


void Etlap::listazas (int j)

{

int random;

random=veletlen(3,2);

for(int i=1;i<=random;i++)

{

et.lista(veletlen(5,1));

}

}


int main () {

et.listazas(1);

return 0;

}


2014. febr. 17. 19:24
 1/2 iostream ***** válasza:
Amikor a srand-ot meghívod, ő inicializálja a randomgenerátort, seedeli. A ciklus annyira gyorsan lefut, hogy a time(0) értéke nem változik, tehát mindig ugyanarra az értékre seedeli a randomot. Adott seedű random sorozat első elemét kéred le folyamatosan. Ez természetesen mindig ugyanaz a szám lesz. Próbáld meg, hogy a srand(time(0));-t csak egyszer, a program elején hívod meg.
2014. febr. 17. 21:50
Hasznos számodra ez a válasz?
 2/2 A kérdező kommentje:

Köszi.

Túl lassú wow.

2014. febr. 18. 16:56

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!