Lekcja 16 - Praca Domowa
Ostatnio zmodyfikowano 2012-09-12 18:09
lukash3k1 Temat założony przez niniejszego użytkownika |
Lekcja 16 - Praca Domowa » 2012-09-12 17:54:53 Witam jak większość pewnie zaczynam uczyć się c++ i mam taki problem gdy robię prace domową z lekcji 16 to coś mi z pętlom "do...while" się nie zgadza.
Wytłumaczy ktoś co muszę poprawić/dodać?
#include <iostream> #include <cstdlib> #include <ctime> int main() { srand( time( NULL ) ); int liczba = (( rand() % 1000 ) + 1 ); std::cout << "\n=========================" << std::endl; std::cout << "\n= + + CZYSTY STRZAL + + =" << std::endl; std::cout << "\n=========================" << std::endl; std::cout << "\nProgram Wylosowal liczbe w przedziale 0-1000." << std::endl; std::cout << "\nTwoim celm jest trafienie w wylosowana liczbe." << std::endl; std::cout << "\n=============================================== \n \n \n" << std::endl; std::cout << "\nNa chwile: Liczba to: " << liczba << std::endl; do { std::cout << "\nStrzelaj: " << std::endl; std::cin >> strzal; int strzal; int ile; ile ++; bool str = std::cin.good(); std::cin.clear(); std::cin.sync();
if ( str == false ) std::cout << "Podawaj tylko liczby" << std::endl; if ( str == true ) { if ( strzal > liczba ) std::cout << "\nLiczba podana jest za duza" << std::endl; if ( strzal == liczba ) { std::cout << "\nGratulacje !" << std::endl; std::cout << "\nIlosc strzalow: " << ile << std::endl; } if ( strzal < liczba ) std::cout << "\nLiczba podana jest za mala" << std::endl; } } while ( strzal == liczba );
return 0; }
Co do: std::cout << "\nNa chwile: Liczba to: " << liczba << std::endl; jest to tym czasowe dla mojej informacji :)
@Edit Problem rozwiązany Sorki :) int strzal; // zostal wywalony nad petle do...while
@edit2 Hmm... Teraz gdy podam liczbe mniejsza/wieksza petla sie nie powtarza :) |
|
kubawal |
» 2012-09-12 18:06:04 1. co konkretnie? Jakie błędy? 2. kod daj w [cpp]...[/cpp] 3. std::cin >> strzal; int strzal; int ile;
|
W pierwszej linijce zmienna strzał jest 'undefined' (tak na pewno napisał ci kompilator) W każdym obiegu pętli tworzysz nowe zmienne strzal i ile, i przy każdym obiegu pętli zostają im nadane inne wartości. Cały program powinien wyglądać tak: int main() { int ile = 0, strzal; do { std::cin << strzal; ile++; while( ); } }
4. while( strzal == liczba ) |
To da wynik odwrotny od porządanego, tak samo jakbyś napisał grę w "Podaj jakąkolwiek inną liczbę niż tą, którą wylosowałem" powinno być while( strzal != liczba ) |
|
lukash3k1 Temat założony przez niniejszego użytkownika |
» 2012-09-12 18:09:32 Serdczne dzięki ! Tak co do petli to się pomylilem juz dziala wszystko a co do cpp nie wiedzialem jak wlasnie to zrobic dzięki ! ...
Zmeczenie robi swoje :) |
|
« 1 » |