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

Zadanie c++ podstawa

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
373 wizyt
pytanie zadane 9 grudnia 2018 w C i C++ przez m4rcingsxr Początkujący (360 p.)

Witam czy ktoś mógłby mi pomóc z tym zadaniem, nie wiem gdzie robie błąd,  chodzi o to żeby program pytał o wartości dopóki nie podamy dodatnich

int a,b;
   

    while(a<0 || b<0)
{
     cout << "podaj a:" ;
    cin >> a;
    cout <<"podaj b:" ;
    cin >> b;

    if(a<0 || b<0)
        cout << "nieprawidlowa wartosc" ;
        else
            cout << "pp jest rowne: " << a*b << endl;


}

 

4 odpowiedzi

0 głosów
odpowiedź 9 grudnia 2018 przez Arkadiusz Sikorski Pasjonat (20,160 p.)
wybrane 9 grudnia 2018 przez m4rcingsxr
 
Najlepsza
int main()
{
    int a, b;
    while(true) {
        std::cout << "Podaj a: ";
        std::cin >> a;
        std::cout << "Podaj b: ";
        std::cin >> b;
        if(a > 0 && b > 0)
            break;
        else
            std::cout << "a i b muszą być dodatnie!" << std::endl;
    }
    std::cout << "pp = " << a*b << std::endl;
}

Pętla zakończy się tylko, jeśli użytkownik poda a > 0 "i" b > 0, w przeciwnym wypadku wyświetli komunikat i poprosi jeszcze raz :)

komentarz 9 grudnia 2018 przez m4rcingsxr Początkujący (360 p.)
super, działa! niedokonca rozumiem dlaczego true w nawiasach :(, mógłbys wytlumaczyc?
komentarz 9 grudnia 2018 przez Arkadiusz Sikorski Pasjonat (20,160 p.)

while(true) oznacza pętlę nieskończoną. Będzie ona wykonywać się w nieskończoność, dopóki użytkownik nie poda prawidłowych danych. Do "wyskoczenia" z tej pętli używany jest warunek i break.

komentarz 9 grudnia 2018 przez m4rcingsxr Początkujący (360 p.)
super wszystko jasne, dzięki za poświęcony czas! :)
komentarz 9 grudnia 2018 przez Arkadiusz Sikorski Pasjonat (20,160 p.)
Powodzenia z dalszą nauką! :)
0 głosów
odpowiedź 9 grudnia 2018 przez Shimeo7 Obywatel (1,910 p.)
Najlepiej wg mnie zrobić pętle while, a w jej warunku sprawdzić czy liczba jest mniejsza od zera
komentarz 9 grudnia 2018 przez m4rcingsxr Początkujący (360 p.)
próbowałem
0 głosów
odpowiedź 9 grudnia 2018 przez Marcin Siniarski Gaduła (4,420 p.)

Coś w stylu

int a = 0,b = 0;
while(true) {
   cout << "Podaj a";
   cin >> b;
   cout << "Podaj b";
   cin >> b;
   if(a >0 || b > 0)
      break;
   else
      cout << "Niepoprawne warosci" << endl;
}
cout << "pp = " << a*b << endl;

 

0 głosów
odpowiedź 9 grudnia 2018 przez adamus Użytkownik (860 p.)

Weddług mnie uzyj do-while, zobacz:
 

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

Rozumiesz?
Koniec :)

komentarz 9 grudnia 2018 przez m4rcingsxr Początkujący (360 p.)
ale nie moze byc && bo wystarczy ze jeden warunek nie bedzie spelniony
komentarz 9 grudnia 2018 przez adamus Użytkownik (860 p.)
Tak ale podales ze dwie liczby maja byc dodatnie
komentarz 9 grudnia 2018 przez Arkadiusz Sikorski Pasjonat (20,160 p.)
Tu musiałoby być "||". Program ma prosić użytkownika o dane, dopóki a <= 0 LUB b <= 0.

Równoważnie: jeśli którekolwiek liczba jest niedodatnia (a LUB b), pytamy użytkownika jeszcze raz.

Podobne pytania

0 głosów
3 odpowiedzi 595 wizyt
pytanie zadane 24 maja 2017 w C i C++ przez Andrzej Sojka Użytkownik (510 p.)
+1 głos
1 odpowiedź 821 wizyt
pytanie zadane 14 grudnia 2021 w C i C++ przez fsfxvcxv Obywatel (1,160 p.)
0 głosów
0 odpowiedzi 112 wizyt

93,440 zapytań

142,431 odpowiedzi

322,679 komentarzy

62,802 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

...