lekcja. 16 zad domowe
Ostatnio zmodyfikowano 2013-01-18 11:12
vivx Temat założony przez niniejszego użytkownika |
lekcja. 16 zad domowe » 2013-01-15 22:57:50 Witam zrobiłem loterie ale po wpisaniu liczby... narazie pokaże kod Edit@ #include <iostream> #include <cstdlib> #include <ctime> int main() { srand( time( NULL ) ); int a; int b =(( rand() % 10 ) + 1 ); std::cout << "***************\n * LOTERIA *\n***************"; std::cout << "\n\t\t\t By Vivx"; std::cout << "\n\n Loteria losuje liczby w przedziale od 1-1000" << std:: endl; do { std::cin >> a; std:: cout << " trwa losowanie ...\n wylosowana liczba to " << (( rand() % 10 ) + 1 ) << std::endl; if( a >= 11 || a <= 0 ) { std:: cout << "Podana liczba jest za duza lub mala z przedzialu" << std::endl; if( b != a ) { std::cout << "Nie trafiles" << std::endl; } } while( b != a ); if( a == b ) std::cout << "brawo"; return 0; }
Już naprawiłem prawie wszystko tylko nie dziala mi ze jak zgadne liczbe to kończy pętlę tylko cały czas pętla chodzi wiecie może jak to naprawić ? (nie patrzcie na kod ze nie dokończony ;d) |
|
kilroy |
» 2013-01-16 00:38:35 zadeklarowałeś ile wynosi zmienna: liczba, ale podczas std::cout podajesz inną wylosowaną liczbę. Poza tym w twoim losowaniu liczba wcale nie jest losowana z przedziału od 1 do 1000. Polecam: Pseudolosowe liczby całkowite |
|
vivx Temat założony przez niniejszego użytkownika |
» 2013-01-16 08:53:42 Nie robilem narazie od 1-1000 zeby losowalo bo testowalem czy dziala pomysł troche od 1 do 1000 sobie traf ....i wgl jak wpisze liczbe 4 w zmiennej a to wyskakuje mi ze liczba jest nie prawidlowa nie pomija if ... |
|
kilroy |
» 2013-01-16 23:19:44 Po prostu zmień odpowiednią linijkę na: std::cout << " trwa losowanie ...\n wylosowana liczba to " << b << std::endl; i będzie git (jeśli o takie działanie tego programu ci chodziło) Poza tym brakuje ci w przyklejonym kodzie nie zamknąłeś pętli do...while. Przed while ma być } |
|
vivx Temat założony przez niniejszego użytkownika |
» 2013-01-17 00:47:20 Zmienilem linijke tak jak mowiles i dziala prawie tylko jak np strzelam i wpisze liczbe 2 to wyskakuje mi ze wylosowano liczbe 5 i potem się nie zmienia ... A jeżeli chodzi o program jak ma dzialac to tak użytkownik podaje liczbe jeżeli liczba jest za duża lub mala to wyskakuje blad potem ma losowac jeżeli osoba trafi to pisze ze trafi jeśli nie wraca do początku czyli na nowo losuje no to jest do zadania domowego tam jest " 1. Program losuje liczbę z przedziału od 1 do 1000. 2. Użytkownik zgaduje liczbę, która została wylosowana. 3. Jeżeli podana liczba jest za duża (za mała) gra wypisuje stosowny komunikat i powraca do kroku 2. 4. Jeżeli gracz trafi liczbę wylosowaną to działanie, kończy progam ekran wylosowaną 'strzałów', które oddał gracz. Gra ma być zabezpieczona możliwością wprowadzenia wartości liczbowych." reszte wiem jak zrobić tylko chodzi mi o ten program co wyżej pisałem jak ma wyglądać bo mi coś nie dziala
|
|
kilroy |
» 2013-01-17 11:55:17 Obecnie twój if wywoływany jest tylko, gdy podasz liczbę większą niż 10 lub mniejszą niż 0 (nie wiadomo po co). zastąp go innym warunkiem: jeśli wpisana przez ciebie liczba (a) będzie większa niż wylosowana (b) to niech program wpisze komunikat np. "za duża" jeśli mniejsza: "za mała". Dodatkowo stwórz kolejną zmienną, która nalicza ilość twoich strzałów, czyli przed końcem pętli dodaje do siebie 1. Zabezpieczona, czyli nie wyrzuca cię z programu - ma powtórzyć wczytywanie liczby, gdy ktoś omyłkowo (lub specjalnie) wciśnie niedozwoloną liczbę, np. rzeczywistą lub po prostu literę. Informacja jak to się robi była na początku kursu: Obsługa strumienia wejściowego |
|
vivx Temat założony przez niniejszego użytkownika |
» 2013-01-17 12:41:18 Chodzi mi to tylko ze jak np masz ze masz strzelać ta liczbe i trafisz w nia to tego nie czyta z reszta umiem sobie poradzić |
|
kilroy |
» 2013-01-17 14:13:12 musisz przejrzyście wyjaśnić o co ci chodzi, bo nie twojego rozumiem problemu (a właściwie tego co jest napisane w twoim poście). Masz taki program: #include <iostream> #include <cstdlib> #include <ctime> int main() { srand( time( NULL ) ); int a; int b =(( rand() % 10 ) + 1 ); std::cout << "***************\n * LOTERIA *\n***************"; std::cout << "\n\t\t\t By Vivx"; std::cout << "\n\n Loteria losuje liczby w przedziale od 1-1000" << std:: endl; do { std::cin >> a; std::cout << " trwa losowanie ...\n wylosowana liczba to " << b << std::endl; if( a >= 11 || a <= 0 ) { std:: cout << "Podana liczba jest za duza lub mala z przedzialu" << std::endl; if( b != a ) { std::cout << "Nie trafiles" << std::endl; } } } while( b != a ); if( a == b ) std::cout << "brawo"; return 0; } Według mnie jak trafisz w wylosowaną liczbę to pojawia się komunikat i program się zamyka. Nie o to ci chodziło? |
|
« 1 » 2 |