Wpis z mikrobloga

#programowanie #cpp #problem #naukaprogramowania
Czemu podanie wartości typ mniejszej od 0 kończy ostatnią pętlę?

#include

using namespace std;

int main()
{
int a, b, typ;
cout << "Program kalkulator" << endl;
cout << "Wprowadz pierwsza liczbe: ";
do
{
cin.clear();
cin.sync();
cin >> a;
cin.fail();
if (cin.fail())
cout << "Nieprawidlowa wartosc. Sprobuj jeszcze raz: ";
} while (cin.fail());

cout << "Wprowadz druga liczbe: ";
do
{
cin.clear();
cin.sync();
cin >> b;
cin.fail();
if (cin.fail())
cout << "Nieprawidlowa wartosc. Sprobuj jeszcze raz: ";
} while (cin.fail());

cout << "Pierwsza liczba: " << a << " Druga liczba: " << b << endl;

cout << "Wybierz dzialanie na liczbach: ";
do
{
cin.clear();
cin.sync();
cin >> typ;
cin.fail();
if (cin.fail() || typ < 0 || typ > 5)
cout << "Niepoprawny numer dzialania. Sprobuj jeszcze raz: ";
if ((typ == 0 || typ == 5) && !cin.fail())
{
cout << endl << "Program zakonczy dzialanie";
return 0;
}
} while (cin.fail() || typ > 5);

return 0;
}
  • 9
@Gorion103: warunek typ<0 pokazuje komunikat o niepoprawnej wiadomości i ostatnia pętla powinna się powtórzyć aby spróbować jeszcze raz wprowadzić tą wartość poprawnie. Z jakiegoś powodu wprowadzenie wartości mniejszej od 0 kończy pętlę której warunki są while (cin.fail() || typ > 5);