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

Pseudolosowe liczby całkowite / Poziom 2

Ostatnio zmodyfikowano 2012-11-10 21:58
Autor Wiadomość
Najsu
Temat założony przez niniejszego użytkownika
Pseudolosowe liczby całkowite / Poziom 2
» 2012-11-10 21:21:47
Witam serdecznie.
Utknąłem przy lekcji 16, chciałbym się zwrócić do Was o pomoc.
W chwili obecnej mój kod wygląda tak:
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
int main()
{
    //ZMIENNE
    int liczbastrzalow = 0;
    int strzal;
    int los;
   
   
   
    srand( time( NULL ) );
   
    do
    {
        int los =( rand() % 10 );
        std::cout << "Liczba zostala wylosowana!" << std::endl;
        std::cout << "Strzelam, ze to: ";
        std::cin >> strzal;
        if( strzal == los )
        {
            std::cout << "" << std::endl;
            std::cout << "Gratulacje, zgadles!" << std::endl;
            std::cout << "" << std::endl;
           
        }
        else
        {
            ++liczbastrzalow;
            std::cout << "" << std::endl;
            std::cout << "Niestety nie udalo sie! Do tej pory chybiles " << liczbastrzalow << " razy." << std::endl;
            std::cout << "" << std::endl;
        }
    } while( los != strzal );
   
    std::cout << "Koniec!" << std::endl;
}

Analizowałem go dosyć długo i nie wiem gdzie jest błąd, a polega on na tym, że gdy wylosujemy liczbę prawidłowo pętla WHILE, zamiast się skończyć nadal się powtarza. Co wygląda następująco:

Gratulacje, zgadles!
Liczba zostala wylosowana!
Strzelam, ze to:

Proszę o nakierowanie, z góry dziękuje i pozdrawiam.

@edit Chciałbym dodać, że dopiero później będę to zabezpieczać.
P-68954
DejaVu
» 2012-11-10 21:37:24
Wywal 'int' w tym miejscu.
C/C++
int los =( rand() % 10 );
Gdzieś był podobny temat na forum w ciągu ostatnich 2 tygodni, ale znaleźć nie mogę...

/edit:
Problem z maszyną losującą
P-68957
zaVIstic
» 2012-11-10 21:54:51
A nie wystarczy dodać instrukcji break w tym miejscu?
C/C++
if( strzal == los )
{
    std::cout << "" << std::endl;
    std::cout << "Gratulacje, zgadles!" << std::endl;
    std::cout << "" << std::endl;
    break; // <------------
}
Tak tylko gdybam :)
P-68959
Najsu
Temat założony przez niniejszego użytkownika
Dziękuje
» 2012-11-10 21:58:14
DejaVu - twoja odpowiedź mi pomogła, dziwne że tego nie zauważyłem, określiłem typ zmiennej już powyżej i nie powinienem tego robić ponownie, ale tłumacze się, że jestem początkujący. Dziękuje bardzo i przepraszam jeszcze za to, że napisałem w niepoprawnym dziale, powodem tego był tzw. missclick.
P-68960
« 1 »
  Strona 1 z 1