[c++] Symulacja rzutu monetą program
Ostatnio zmodyfikowano 2015-04-02 13:34
wojownik266 Temat założony przez niniejszego użytkownika |
[c++] Symulacja rzutu monetą program » 2015-04-01 13:23:55 Poniższy program w moim zamierzeniu ma pobierać od użytkownika ilość rzutów monetą a potem wyświetlać odpowiedni napis z tablicy mon. Program w chwili obecnej wyświetla w kółko ten sam napis albo całkiem się wykłada. Co zmienić albo co dodać aby ten program działał zgodnie ze swoim przeznaczeniem? Proszę o ewentualną korektę bądź wskazówki. #include <iostream> #include <vector> #include <string> #include <cstdlib> #include <ctime> using namespace std;
int main() { int ile = 0; vector < string > mon( 2 ); mon[ 0 ] = { "orzel" }; mon[ 1 ] = { "reszka" }; cout << "SYMULACJA RZUTU MONETA" << endl; cout << "----------------------\n" << endl; cout << "Ile razy chcesz rzucic:"; cin >> ile; for( int i = 0; i < ile; ++i ) { srand( time( NULL ) ); int rzut = 0; rzut = rand() % 2 + 1; cout << "Rzut nr.[" << i << "] = " << mon[ rzut ] << endl; } cin.get(); cin.get(); return 0; }
|
|
Monika90 |
» 2015-04-01 13:25:52 rand() % 2 + 1; losujesz liczbę 1 albo 2 |
|
wojownik266 Temat założony przez niniejszego użytkownika |
» 2015-04-01 13:31:08 A co w tym złego albo jak to zmienić tak aby działało. Tzn. raz wyświetlało słowo "orzel" a raz "reszka"? Mnie ta instrukcja wydaje się prawidłowa bo tablica jest dwuelementowa. Choć wiem że mogę się mylić. Więc? |
|
Brunon3 |
» 2015-04-01 13:34:05 #include <pseudo.h> // Pseudokod ;)
1. Pytasz czy użytkownik chce rzucić monetą.
TAK:
1. Losujesz liczbę 1 albo 2. 2. 1 = Orzeł, 2 = Reszka. 3. Reszta implementacji jak chcesz.
NIE:
1. Wychodzisz z programu. Proste? Proste. -BD. |
|
RazzorFlame |
» 2015-04-01 13:41:04 Zamiast mon[rzut] daj mon[rzut-1] |
|
wojownik266 Temat założony przez niniejszego użytkownika |
» 2015-04-01 13:41:39 O ile Cię dobrze zrozumiałem to chcesz aby zamiast napisu wyświetlać liczbę. Czy tak? Jeżeli tak to takie rozwiązanie odpada bo jak napisałem program musi wyświetlać te dwa słowa. Tylko nie wiem czy to się da? Program który wyświetlał by liczby zamiast słowa to wygląda tak jak poniżej i wyświetla liczby. A ja chciałbym żeby program ten powyżej działał podobnie ale zamiast liczb wyświetlał właśnie słowa. Proste? #include <iostream> #include <ctime> #include <cstdlib> using namespace std;
int main() { int ile = 0; cout << "\t\t\tSYMULACJA RZUTU KOSTKA" << endl; cout << "\t\t\t----------------------\n\n" << endl; cout << "Ile razy chcesz rzucic kostka:"; cin >> ile; srand( time( NULL ) ); for( int i = 0; i < ile; ++i ) { int rzut[ ile ]; rzut[ i ] = rand() % 6 + 1; cout << "Rzut nr.[" << i << "] = " << rzut[ i ] << endl; } cin.get(); cin.get(); return 0; }
|
|
wojownik266 Temat założony przez niniejszego użytkownika |
» 2015-04-01 13:45:17 @RazzorFlame To rozwiazanie rozwiązuje problem z wywalaniem się programu ale ma tą wade że wyświetla w kółko to samo słowo. A ja chciałbym aby ono było losoowe ra takie a raz inne. |
|
Brunon3 |
» 2015-04-01 13:47:34 Eh... Doprecyzowanie: #include <pseudo.h> // Pseudokod ;)
zmienna std::string input = "chcę"
PĘTLA (dopóki "input" = "chcę") {
1. Losujesz liczbę 1 albo 2.
2. Jeżeli wylosuje 1 : wyświetlasz "Orzeł". 3. Jeżeli wylosuje 2 : wyświetlasz "Reszka".
4. wczytujesz do zmiennej std::string o nazwie "input" ze strumienia std::cin
// Jeżeli użytkownik wpisze do input "chcę" pętla powtórzy się - przejdź do (1)
} // Koniec pętli
5. Wychodzisz z programu. // Wykona się gdy użytkownik nie wpisze "chcę" Teraz rozumiesz? -BD. |
|
« 1 » 2 3 4 |