• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Prosty kod C++

Object Storage Arubacloud
0 głosów
3,274 wizyt
pytanie zadane 28 sierpnia 2016 w C i C++ przez Julenissen Początkujący (270 p.)

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;

}

 

3 odpowiedzi

+1 głos
odpowiedź 28 sierpnia 2016 przez niezalogowany
wybrane 28 sierpnia 2016 przez Julenissen
 
Najlepsza

Pętlę:

while(true)
    {
    if (a<1||a>200)
    {cout<<"Liczba niepoprawna, podaj jeszcze raz: "; cin>>a;}
    }

Spróbuj zamienić na:

while(a < 1 || a>200)
    {
    cout<<"Liczba niepoprawna, podaj jeszcze raz: ";
    cin>>a;
    }

Lub po prostu po wykonaniu ifa wyjdź z pętli za pomocą "break".

 

komentarz 28 sierpnia 2016 przez Julenissen Początkujący (270 p.)
Dziękuję Ci bardzo za podpowiedź :) Podmieniona pętla działa
+1 głos
odpowiedź 28 sierpnia 2016 przez Owczarek Niemiecki Obywatel (1,570 p.)
Pętla "while(true)" wykonuje się w nieskończonośc także, nie wyjdzie Ci poza nią :)
komentarz 28 sierpnia 2016 przez Julenissen Początkujący (270 p.)
Masz rację :) dzięki za odpowiedź
0 głosów
odpowiedź 28 sierpnia 2016 przez niezalogowany
Swoją droga, co do wejścia zadań na spoju to nie do końca chodzi o to aby zabezpieczyć przed podaniem niepoprawnych danych tylko to jest dla naszej wiadomości, abyśmy mogli np. dostosować zmienne, ewentualnie jakieś konwersje, nie trzeba robić kontroli, oczywiście jak kto woli ;)

Podobne pytania

0 głosów
1 odpowiedź 262 wizyt
pytanie zadane 16 maja 2016 w JavaScript przez niezalogowany
–2 głosów
2 odpowiedzi 542 wizyt
pytanie zadane 25 kwietnia 2016 w C i C++ przez DragonCoder Nałogowiec (36,500 p.)
+1 głos
2 odpowiedzi 270 wizyt

92,557 zapytań

141,405 odpowiedzi

319,565 komentarzy

61,942 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...