[C++] Sprawdzenie przedziału - prośba o pomoc


(greh) #1

Witam.

Na zaliczenie otrzymałem do zrobienia taki program:

"Napisz program, który sprawdza, czy podana przez użytkownika liczba należy do przedziału:<-20;9){0}"

Udało mi się osiągnąć taki kod:

#include 

#include 


using namespace std;


int main(int argc, char *argv[])

{

    int a;

    cout<<"Podaj liczbę" <
    cin>> a; 

    if ((a>= -20) && (a< 9) && (a != 0))

    {

    cout<<"Podana liczba należy do przedziału" <
    }

    else if ((a< -20) && (a> 9) && (a == 0))

    cout<<"Podana liczba nie należy do przedziału" <


    system("PAUSE");

    return EXIT_SUCCESS;

}

Jednak nie potrafię wyświetlić tekstu "Podana liczba nie należy do przedziału", gdy podam liczbę z poza przedziału, program po prostu kończy działanie.

Proszę o pomoc... Błagam... :frowning:


(Sawyer47) #2

Wyrzuć drugi warunek, jest zbędny i do tego błędny. Bo jaka liczba jest ZARÓWNO mniejsza od -20 i większa od 9? Jeśli pierwszy warunek nie jest spełniony to wiadomo, że liczba do tego przedziału nie należy, po co to dodatkowo testować?


(Quentin) #3

Instrukcja else if wg mnie raczej nigdy nie może być spełniona. Istnieje jakaś liczba, która jest jednocześnie mniejsza od -20, większa od 9 i równa zeru :?:

EDIT:

Wyprzedzony :razz:

Zamiast tej instrukcji użyj zwykłe else...


(greh) #4

Panowie dziękuję za wyrozumiałość dla osoby dopiero co ucząccej się C++...

Zrobiłem tak:

#include 

#include 


using namespace std;


int main(int argc, char *argv[])

{

    int a;

    cout<<"Podaj liczbę" <
    cin>> a; 

    if ((a>= -20) && (a< 9) && (a != 0))

    {

    cout<<"Podana liczba należy do przedziału" <
    }

    else 

    {

    cout<<"Podana liczba nie należy do przedziału" <
    }     


    system("PAUSE");

    return EXIT_SUCCESS;

}

I działa... :!: :!: :!:

Jesteście wielcy... Dziękuję... =D> dla Was.