[C++] Funkcja while i break

Jonarz
Użytkownik
Użytkownik
Posty: 120
Rejestracja: 2 paź 2013, o 22:16
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 32 razy
Pomógł: 11 razy

[C++] Funkcja while i break

Post autor: Jonarz »

Mam problem z funkcją while - napisałem właśnie kilka prostych programów, ale w każdym musiałem użyć instrukcji break, a warunek w while "zapchać", bo nie do końca wiem, co wpisać, żeby pętla działała tak, jak chcę.

Na przykład: Napisać program, który wczytuje liczby całkowite do czasu, aż wczytana liczba będzie większa od liczby poprzedniej i zarazem większa od sumy dotychczas wczytanych liczb. Sumę tę (bez ostatniej liczby) oraz ostatnią wczytaną liczbę wypisać na ekranie.

Mój kod:

Kod: Zaznacz cały

#include <iostream>
#include <cstdlib>

using namespace std;

int main() {
int liczba, poprzednia, suma=0;

cout<<"Wprowadz liczbe: ";
cin>>liczba;
suma+=liczba;
poprzednia=liczba;

while(liczba<=poprzednia){
	cout<<"Wprowadz liczbe: ";
	cin>>liczba;
	if(liczba>poprzednia&&liczba>suma)
			break;
	poprzednia=liczba;
	suma+=liczba;
}

cout<<"
Ostatnia wpisana liczba to "<<liczba<<", zas suma wszystkich liczb wynosi "<<suma<<".";
	
cout<<"

";
system("PAUSE");
    return EXIT_SUCCESS;
}
Program działa poprawnie (tak przynajmniej wynika z moich testów), ale zastanawiam się - jak ustalić warunek w pętli while, aby nie korzystać z instrukcji break?
Próbowałem napisać to tak (fragment):

Kod: Zaznacz cały

while(liczba<=poprzednia&&liczba<=suma){
	cout<<"Wprowadz liczbe: ";
	cin>>liczba;
	poprzednia=liczba;
	suma+=liczba;
}
Ale pętla się nie kończy...
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

[C++] Funkcja while i break

Post autor: Afish »

Kod: Zaznacz cały

cout<<"Wprowadz liczbe: ";
cin>>liczba;
poprzednia = liczba;

while(liczba<=poprzednia || liczba <= suma){
   poprzednia=liczba;
   suma+=liczba;
   cout<<"Wprowadz liczbe: ";
   cin>>liczba;
}
Jonarz
Użytkownik
Użytkownik
Posty: 120
Rejestracja: 2 paź 2013, o 22:16
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 32 razy
Pomógł: 11 razy

[C++] Funkcja while i break

Post autor: Jonarz »

Działa jak trzeba i chyba już rozumiem o co chodzi - jeśli jest spełniony albo jeden, albo drugi warunek w nawiasie po while, pętla się wykonuje, jeśli żaden - zostaje przerwana. Bardzo dziękuję za pomoc
ODPOWIEDZ