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

Blokada liczby przed spadkiem poniżej zera C++

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
692 wizyt
pytanie zadane 5 kwietnia 2016 w C i C++ przez TheFeniks Gaduła (4,690 p.)

Cześć :)

Do rzeczy mam sobie taki kodzik:

#include <iostream>
using namespace std;

int liczba=10;

int main()
{
    while(liczba>=0)
    {
       liczba=liczba-2;
       cout<<liczba<<endl;
    }

    if(liczba==0)
    {
       cout<<"Liczba jest rowna 0"<<endl;
    }

return 0;
}

Program pokazuje liczby: 8 6 4 2 0 -2

Chodzi o to jak zablokować liczbe przed spadkiem poniżej zera ?

Poprostu żeby to -2 się nie pokazało i żeby ostatnią liczbą jaka się wyświetli było zero. :)

I wykonał się if

 

7 odpowiedzi

+2 głosów
odpowiedź 5 kwietnia 2016 przez Łukasz Wasilewski Mądrala (5,190 p.)
cout<<liczba<<endl;

Zmień to na:

cout << (liczba < 0 ? 0 : liczba) << endl;

 

+1 głos
odpowiedź 5 kwietnia 2016 przez Vento Pasjonat (17,120 p.)

Zmień warunek na

 

while(liczba>0)

 

komentarz 5 kwietnia 2016 przez TheFeniks Gaduła (4,690 p.)
No dobra ale chodzi o to że na przykład masz 100 i odejmuje ci 40,30,30,10

Wynik to -10 chodzi o to żeby program ci pokazał 0 a nie -10
komentarz 5 kwietnia 2016 przez Vento Pasjonat (17,120 p.)
#include <iostream>
using namespace std;

int liczba=100;

int main()
{
    while(liczba>0)
    {
       liczba=liczba-2;
       cout<<liczba<<endl;
       if(liczba<=0)
        {
        cout<<"Liczba jest rowna 0"<<endl;
        break;
        }
    }


return 0;
}

 

 

Po prostu w pętli sprawdzaj czy 0 jest większa bądź równa liczbie jeżeli tak przerwij pętle za pomocą 

break;

 

1
komentarz 5 kwietnia 2016 przez TheFeniks Gaduła (4,690 p.)
A jak bym chciał takie coś poza pętlą ?
+1 głos
odpowiedź 5 kwietnia 2016 przez ormu16 Gaduła (4,980 p.)
 while(liczba>=0)
    {
       liczba=liczba-2;
       cout<<liczba<<endl;

    if (liczba<=0) {
       //liczba równa 0
       break;
    }
    }

nie wiem czy to zadziała. Dawno nie pisałem w C++ ale spróbuj.

+1 głos
odpowiedź 5 kwietnia 2016 przez niezalogowany
Zmień warunek na while ( liczba>=2) ;]
+1 głos
odpowiedź 5 kwietnia 2016 przez niezalogowany

Najłatwiej będzie użyć pętli for

#include <iostream>


int main()
{
	for(int i = 10; i >= 0; i -= 2)
		std::cout<<i<<std::endl;
	std::cout<<"Liczba jest rowna 0\n";	
}

 

0 głosów
odpowiedź 5 kwietnia 2016 przez MisterVento3 Użytkownik (830 p.)
edycja 5 kwietnia 2016 przez MisterVento3
int main(int argc, char* argv[]) 
{
	int liczba = 10;

	while (liczba >= 0)
	{
		if (liczba <= 0)
		{
			cout << "Liczba jest rowna 0" << endl;
			break;
		}

		liczba -= 2;
		cout << liczba << endl;
	}

	return 0;
}

 

1
komentarz 5 kwietnia 2016 przez krzemionskyy Użytkownik (630 p.)
Prześledź pętlę while() przejście po przejściu i zobacz co tam robisz ;) W momencie kiedy liczba jest równa 0 pętla wykonuje się raz jeszcze, czyli pomniejsza liczbę o 2 i wypisuje ją na ekran.. ; )
komentarz 5 kwietnia 2016 przez MisterVento3 Użytkownik (830 p.)
Masz rację, już poprawiłem, powinno być dobrze xD
0 głosów
odpowiedź 5 kwietnia 2016 przez criss Mędrzec (172,570 p.)

Po prostu przed odjęciem sprawdzaj czy wynik nie jest mniejszy od zera. Najprościej:

liczba = liczba - 2 < 0 ? 0 : liczba -2;

 

Podobne pytania

0 głosów
0 odpowiedzi 221 wizyt
0 głosów
1 odpowiedź 256 wizyt
pytanie zadane 29 września 2016 w C i C++ przez 4sp3ll Początkujący (410 p.)
0 głosów
0 odpowiedzi 160 wizyt
pytanie zadane 17 stycznia 2022 w Bezpieczeństwo, hacking przez armen10 Początkujący (420 p.)

93,440 zapytań

142,431 odpowiedzi

322,678 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

...