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

Lekcja nr 16, problem

Ostatnio zmodyfikowano 2016-03-03 11:00
Autor Wiadomość
Amoook
Temat założony przez niniejszego użytkownika
Lekcja nr 16, problem
» 2016-03-02 12:24:24
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
int main()
{
    srand( time( NULL ) );
    int liczba1;
    int liczba2;
    int liczba3;
    liczba2 = std::rand() % 10 + 1;
   
    std::cout << "To jest gra, w ktorej musisz zgadnac jaka liczbe wylosowal komputer" << std::endl;
    std::cout << "Komputer bedzie losowal liczbe z przedzialu od 1 do 10." << std::endl;
    std::cout << "Aby rozpoczac wcisnij 1" << std::endl;
    std::cin >> liczba1;
    if( liczba1 < 1 || liczba1 > 1 )
    do
    {
        std::cout << "Pomyliles sie, sprobuj jeszcze raz." << std::endl;
        std::cin >> liczba1;
    }
    while( liczba1 < 1 || liczba1 > 1 );
   
    std::cout << "Podaj liczbe wylosowana przez komputer: ";
    std::cin >> liczba3;
   
    if(( liczba3 < liczba2 ) &&( liczba3 < 10 ) )
    {
        do
        {
            std::cout << "Liczba jest za duza, sprobuj jeszcze raz!" << std::endl;
            std::cin >> liczba3;
        }
        while( liczba3 > liczba2 );
       
    }
    if(( liczba3 < liczba2 ) &&( liczba3 > 1 ) )
    do
    {
        std::cout << "Lczba jest za mala, sprobuj jeszcze raz!" << std::endl;
        std::cin >> liczba3;
    }
    while( liczba3 < liczba2 );
   
    if( liczba3 == liczba2 )
         std::cout << "Brawo, trafiles!";
   
   
    return 0;
}

Nie mogę przez to przebrnąć. Po podaniu cyfry 1, co jest warunkiem dalszego działania programu, nic się nie dzieje. Kompilator nie wyrzuca żadnych błędów. Wygląda to tak, że część programu do momentu podania cyfry "1" działa poprawnie, druga część programu (po podaniu cyfry "1") też działa poprawnie, ale razem nie chcą funkcjonować.
P-145483
carlosmay
» 2016-03-02 12:39:29
Mocno ta zakręcone.

Wystarczy jedna pętla, a w niej instrukcja warunkowa informująca
o relacji między podaną i szukaną wartością.
Zgaduj póki nie zgadniesz.
To wszystko.
P-145484
Amoook
Temat założony przez niniejszego użytkownika
» 2016-03-02 12:57:24
No OK, może i pokręcone, ale czy widzisz dlaczego nie idzie po "  while (liczba1<1 || liczba1 > 1);  ?
P-145486
carlosmay
» 2016-03-02 15:57:10
if(( liczba3 < liczba2 ) &&( liczba3 < 10 ) )
Ten warunek jest prawdziwy dla liczby mniejszej od wylosowanej (nie tego oczekujesz).

( liczba1 < 1 || liczba1 > 1 )
 ==>
( liczba1 != 1 )
Zdecyduj, które jest czytelniejsze.
P-145490
Amoook
Temat założony przez niniejszego użytkownika
» 2016-03-03 11:00:57
@carlosmay
Dzięki!
P-145511
« 1 »
  Strona 1 z 1