Cześć wszystkim,
Na stronie Polski SPOJ (kto nie zna, temu polecam do nauki programowania) znalazłem do napisania prosty program który pobiera od użytkownika 2 liczby calkowite, nie większe od 200. Następnie je sumuje i wyrzuca wynik. Banał.
W programie zawarłem warunek do spełnienia dla liczby tak żeby została zaakceptowana i umieściłem go nieskończonej pętli. Mój problem polega na tym, że można podawać programowi nieporawne liczby (on to wychwyci i poprosi o podanie poprawnej liczby) jednak gdy podamy już poprawną liczbę to program się zatrzymuje i nie żąda podania drugiej liczby. Przypuszczam, że jest to związane z tym iż pętla się wykonała do końca. Jednak moja bardzo skromna wiedza podpowiada mi, że program lecąc z góry na dól i wykonując kolejne linie kodu powinien wyjść z pętli i iść dalej, czyż nie? Dlaczego więc program się zatrzymuje?
Pozdrawiam
#include <iostream>
using namespace std;
int a,b;
int main()
{ cout<<"Program sumuje 2 liczby calkowite, nie wieksze od 200"<<endl;
cout<<"Podaj pierwsza liczbe: ";
cin>>a;
while(true)
{
if (a<1||a>200)
{cout<<"Liczba niepoprawna, podaj jeszcze raz: "; cin>>a;}
}
cout<<"Podaj druga liczbe: ";
cin>>b;
while(true)
{
if (b<1||b>200)
{cout<<"Liczba niepoprawna, podaj jeszcze raz: "; cin>>b;}
}
cout<<a+b;
return 0;
}