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

Pętla zaporowa

Object Storage Arubacloud
0 głosów
1,469 wizyt
pytanie zadane 21 stycznia 2021 w C i C++ przez eternal Użytkownik (620 p.)
Zastanawiam się nad tym jak stworzyć warunek, aby wczytywane liczby dajmy na to ujemne, mogły być rozróżnione. W sensie while(a<=0 || b<=0 || c<=0) i ktoras z nich jest ujemna np. b = -2 i chcialbym tylko ta jedna liczbe wprowadzic jeszcze raz poprawnie (bez użycia tablicy), nie wszystkie wartości jeszcze raz (w pętli zaporowej instrukcja - cin >> a >> b >> c;

Tutaj rodzi się kolejny problem jak stworzyć warunek, żeby nie musieć pisać za każdym razem n<=0, próbowałem tak ale wtedy pętla się nie wykonuje while((a || b || c)<=0)

1 odpowiedź

0 głosów
odpowiedź 21 stycznia 2021 przez KopfSzmercen Bywalec (2,870 p.)
wybrane 22 stycznia 2021 przez eternal
 
Najlepsza

Najbardziej intuicyjnym sposobem jak dla mnie jest sprawdzenie każdej liczby kiedy pierwsza pętla się zakończy czyli przynajmniej jedna z liczb będzie dodatnia. Jako że liczb ma być 3 to ja sprawdziłbym każdą a potem zastosował identyczne podejście co na początku, czyli prosił o wprowadzenie liczby tak długo aż będzie ona dodatnia.

int a, b, c;
int N = 10;

    do
    {
        cout<< "Podaj liczby a b c: ";
        cin >> a >> b >> c;    
    
    } while (a <= 0 && b <= 0 && c <= 0);

    if (a <= 0)
    {
        do
        {
            cout<< "Podaj ponownie liczbe a: ";
            cin >> a;
        } while ( a <= 0);
        
    }

    if (b <= 0)
    {
        do
        {
            cout<< "Podaj ponownie liczbe b: ";
            cin >> b;
        } while ( b <= 0);
        
    }

    if (c <= 0)
    {
        do
        {
            cout<< "Podaj ponownie liczbe c: ";
            cin >> c;
        } while ( c <= 0);
        
    }

 

2
komentarz 21 stycznia 2021 przez j23 Mędrzec (194,920 p.)

Nieco zwięźlej:

    std::cout << "Podaj liczby a b c: ";

    while(std::cin >> a, a <= 0) { std::cout << "podaj ponownie a: "; }
    while(std::cin >> b, b <= 0) { std::cout << "podaj ponownie b: "; }
    while(std::cin >> c, c <= 0) { std::cout << "podaj ponownie c: "; }   

 

Podobne pytania

+1 głos
2 odpowiedzi 250 wizyt
pytanie zadane 22 maja 2023 w C i C++ przez Igor4567 Nowicjusz (170 p.)
0 głosów
0 odpowiedzi 451 wizyt
0 głosów
2 odpowiedzi 607 wizyt
pytanie zadane 27 kwietnia 2022 w C i C++ przez Mati323 Nowicjusz (210 p.)

92,551 zapytań

141,399 odpowiedzi

319,530 komentarzy

61,937 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!

...