Lekcja 16 Zadanie domowe, mały problem
Ostatnio zmodyfikowano 2012-09-01 01:18
Kroser Temat założony przez niniejszego użytkownika |
Lekcja 16 Zadanie domowe, mały problem » 2012-08-31 21:10:17 Mam mały problem z zadaniem z lekcja 16 problem polega na tym ze nawet gdy trafie wylosowana liczbę to i tak pisze że pudło. Nie wiem co zrobić jeśli ktoś mógł by mi podpowiedzieć gdzie popełniłem błąd to był bym bardzo wdzięczy i jeszcze zapomniałem dodać że ustawiłem losowanie do 10 żeby można było szybciej wcelować liczbę
#include <iostream> #include <cstdlib> #include <ctime> int main() { srand( time( NULL ) ); int a; int liczba; int proby = 0; do { std::cout << "Podaj liczbe 1 - 10: " << std::endl; std::cin >> a; std::cout << "Wylosowana liczba to: " <<(( rand() % 10 ) + 1 ) << std::endl; liczba =(( rand() % 10 ) + 1 ); if( a <= 10 ) std::cout << "Pudlo" << std::endl; proby += 1; } while( a != liczba ); std::cout << "Trafiona liczba to: " << a << std::endl; std::cout << "Strzelales: " << proby << "razy" << std::endl; system( "Pause" ); return 0; } |
|
DejaVu |
» 2012-08-31 21:11:52 if( a <= 10 ) std::cout << "Pudlo" << std::endl;
Przemyśl warunek, a konkretniej co zapisujesz w zmiennej 'a'.
/edit:
std::cout << "Wylosowana liczba to: " <<(( rand() % 10 ) + 1 ) << std::endl; liczba =(( rand() % 10 ) + 1 );
To też się kupy nie trzyma - też to przemyśl. |
|
Kroser Temat założony przez niniejszego użytkownika |
» 2012-08-31 22:28:35 Myślę cały czas na warunkiem
if( a <= 10 ) std::cout << "Pudlo" << std::endl;
próbuje różnych rozwiązań ale ciągle to samo :(
co do
std::cout << "Wylosowana liczba to: " <<(( rand() % 10 ) + 1 ) << std::endl; liczba =(( rand() % 10 ) + 1 );
to zmieniłem tak
#include <iostream> #include <cstdlib> #include <ctime> int main() { srand( time( NULL ) ); int a; int liczba = ((rand() % 10 ) +1 ); int proby = 0; do { std::cout << "Podaj liczbe 1 - 10: " << std::endl; std::cin >> a; std::cout << "Wylosowana liczba to: " <<((rand() % 10 ) +1 ) << std::endl; if( a <= 10 ) std::cout << "Pudlo" << std::endl; proby += 1; .............. |
|
DejaVu |
» 2012-08-31 22:33:45 No akurat zmieniłeś kod w najgorszy możliwy sposób :P Poczytaj ponownie o zmiennych do czego ich się używa no i rozdział w którym była omówiona funkcja rand() tj. jak ona działa. |
|
Kroser Temat założony przez niniejszego użytkownika |
» 2012-08-31 23:06:54 Przeczytałem to co Pan napisał żebym przeczytał i przeczytałem jeszcze raz temat zadania domowego i wydaje mi się że to co wcześniej napisałem to jest całkiem źle bo nie o to chodzi w tej grze. Napisałem coś takiego:
#include <iostream> #include <cstdlib> #include <ctime> int main() { srand( time( NULL ) ); int liczba = ((rand() % 1000 ) +1 ); int a; int proby = 0; std::cout << "Traf liczbe 1 - 1000" <<std::endl; std::cout << "Podaj liczbe" <<std::endl; do { std::cin >> a; if(a > 0 && a <= 1000) { proby ++; if(a > liczba) std::cout << "Za duza" << std::endl; if(a < liczba) std::cout << "Za mala" << std::endl; } else std::cout << "Blad" << std::endl;
} while( liczba != a ); std::cout << "Trafiona liczba to: " << liczba << std::endl; std::cout << "Strzelales: " << proby << " razy" << std::endl; system("Pause"); return 0; }
Wydaje mi się że to jest dobra gra, jeśli to jest zła to mam prośbę czy pan mógł by mi napisać jak ta gra ma wyglądać? |
|
DejaVu |
» 2012-09-01 01:18:58 Jeżeli działa - to dobrze. Jeżeli interesują Ciebie inne rozwiązania to:
Ja sam z siebie nie daję rozwiązań :) Ważne jest by umieć samodzielnie sobie radzić z problemami i nauczyć się oceniać własną pracę pod kątem "czy cel został osiągnięty". Samodzielność w programowaniu to duży atut programisty - im szybciej się uniezależnisz tym lepszym koderem będziesz w przyszłości. |
|
« 1 » |