Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Lekcja 16 - Praca Domowa

Ostatnio zmodyfikowano 2012-09-12 18:09
Autor Wiadomość
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 :)
P-64833
kubawal
» 2012-09-12 18:06:04
1.
coś mi się nie zgadza
 co konkretnie?
Jakie błędy?
2. kod daj w [cpp]...[/cpp]
3.
C/C++
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:
C/C++
//...
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 )
P-64835
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 :)
P-64836
« 1 »
  Strona 1 z 1