Kezdőoldal » Számítástechnika » Programozás » C++-ban hogyan lehet kiíratni...

C++-ban hogyan lehet kiíratni egy string tömb egy véletlenszerűen kiválasztott elemét?

Figyelt kérdés

2016. jan. 29. 15:37
1 2
 1/11 anonim ***** válasza:
Létrehozol egy egész változót, aminek a rand() függvénnyel adsz értéket. Ez a változó lesz a ciklusváltozód a kiíratásnál.
2016. jan. 29. 15:41
Hasznos számodra ez a válasz?
 2/11 A kérdező kommentje:
Jaa' :D ennyi eszem nincs
2016. jan. 29. 15:47
 3/11 anonim ***** válasza:
de a rand() olyan számot generáljon, ami bele esik a első és utolsó index közé
2016. jan. 29. 15:54
Hasznos számodra ez a válasz?
 4/11 A kérdező kommentje:

Hogy működik a rand() függvény? Van egy mostmár egy int tömböm, 'halom[51]'. Úgy adogattam értéket az elemeknek, hogy pl. 'halom[0, 1, 2, 3] = 1' - így szabad?

Ki akarok íratni egy elemet, az 'cout << halom[rand()]'?

2016. jan. 29. 16:19
 5/11 anonim ***** válasza:

int tomb[]={4,7,11,54,33}

int pelda=rand()%5; //1-5 közötti generálás


cout<<tomb[pelda];

2016. jan. 29. 16:34
Hasznos számodra ez a válasz?
 6/11 anonim ***** válasza:

Ja bocs, így 0-4 között generál oda kell írni +1-et!

Tehát:


int tomb[5]={4,10,43,21,3};


int pel=rand()%5+1; //itt az 5 helyére annyit írj ahány elemű a tömb


cout<<tomb[pel];

2016. jan. 29. 16:42
Hasznos számodra ez a válasz?
 7/11 anonim ***** válasza:

"pl. 'halom[0, 1, 2, 3] = 1' - így szabad?"


Na ácsi. Szabad, de csak a halom[3] lesz 1, a többivel semmit sem csinál, mert a vessző operátor miatt az utolsó értékre értékelődik ki.


De ez elég rossz dolog, hogy random operátorokat random dolgokra használsz, hogy "hátha vesszővel elválasztva jó lesz", ha nem tudod, mit csinál, ne használd. Először nézd meg a neten, mert _biztosan_ megtalálod a választ.

2016. jan. 29. 16:53
Hasznos számodra ez a válasz?
 8/11 anonim ***** válasza:

Aham.. C++-ban a tömbök indexelése 0-tól kezdődik, ez nem Pascal.


#include <iostream>

#include <string>

#include <ctime>


int main()

{

//random seed

srand(time(NULL));


//a tömbünk

const std::string gyumolcsok[] = {"alma", "korte", "eper"};


//a tömbünk mérete

size_t gyumolcsok_szama = sizeof(gyumolcsok)/sizeof(*gyumolcsok);


//random elem kiírása

std::cout << gyumolcsok[rand() % gyumolcsok_szama] << std::endl;


return 0;

}

2016. jan. 29. 18:24
Hasznos számodra ez a válasz?
 9/11 anonim ***** válasza:

int RandInt(const int min, const int max)

{

static std::mt19937 engine{std::random_device{}()};

using uidist = std::uniform_int_distribution<int>;

static uidist uid{};

return uid(engine, uidist::param_type{min, max});

}


int main()

{

auto RandFrom = [](const auto& container)

{

auto it = std::begin(container);

std::advance(it, RandInt(0, std::size(container) - 1));

return *it;

};


const auto fruits = std::array<std::string, 3>{"alma", "korte", "eper"};

std::cout << RandFrom(fruits) << '\n';


std::cin.get();

}

2016. jan. 29. 18:37
Hasznos számodra ez a válasz?
 10/11 A kérdező kommentje:

...ezeket elnézve jó, hogy nem láttátok a program többi részét :D...

Hát... nem ragaszkodom én a rand()-hoz, csak elhatároztam, hogy írok egy kártyázó programot, de úgylátszik, már az osztással is bajok vannak :/

2016. jan. 29. 19:47
1 2

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!