Pętla - trzy warunki na zakończenie
Ostatnio zmodyfikowano 2012-10-27 20:08
aimq Temat założony przez niniejszego użytkownika |
Pętla - trzy warunki na zakończenie » 2012-10-27 17:11:03 kolejne zadanie z którym mam problem: Napisz pętlę wczytującą kolejne liczby z klawiatury i kończącą się gdy: - suma tych liczb przekroczy 100, - ilość podanych liczb ujemnych przekroczy 10, - dwie kolejne podane liczby będą miały identyczną wartość wymyśliłem coś takiego, po wstępnych testach wydaje się działać prawidłowo, nie wiem jednak jak dodać trzeci warunek kończący pętlę. #include <iostream> #include <conio.h> using namespace std;
int main() { int a, b = 0, c = 0; for( int i = 0; i == 0; ) { cin >> a; b = b + a; if( b > 100 ) i = 1; if( a < 0 ) c = c + 1; if( c > 10 ) i = 1; } getch(); }
|
|
SeaMonster131 |
» 2012-10-27 18:25:03 Albo wczytujesz liczby do tablicy, i porównujesz daną komórkę w tablicy z poprzednią albo tworzysz nową zmienną, a następnie coś w tym stylu: int a, b;
cin >> a;
if( b == a ) i = 1; else b = a;
A to aktualna wartość, b to "wcześniejsza" wpisana wartość. Dodatkowo, zamiast takiego warunku jaki masz, mógłbyś stworzyć pętlę nieskończoną, a przerywać ją za pomocą słowa kluczowego break; Słowa kluczowe continue, break |
|
jsc |
» 2012-10-27 19:04:52 Nie lepiej zrobić pętli do while? cin >> a;
if( a < 0 ) { ++ujemne; }
int suma = a;
do { cin >> b; if( a != b ) { a = b; } else { break; } if( b < 0 ) { ++ujemne; } suma += a; } while(( suma <= 100 ) &&( ujemne <= 10 ) );
|
|
aimq Temat założony przez niniejszego użytkownika |
» 2012-10-27 20:08:27 z dodaniem nowej zmiennej też kombinowałem ale nie wychodziło. Z twoim sposobem też jest coś źle, albo ja popełniam jakiś błąd. Wywala: The variable 'd' is being used without being initialized. #include <iostream> #include <conio.h> using namespace std;
int main() { int b = 0, c = 0; for( int i = 0; i == 0; ) { int a, d; cin >> a; if( d == a ) i = 1; else d = a; b = b + a; if( b > 100 ) i = 1; if( a < 0 ) c = c + 1; if( c > 10 ) i = 1; } }
metody z tablicami nie zastosuję bo jeszcze nie uczyłem się o tablicach. to co wkleił jsc śmiga jak powinno, dzięki :) edit: już odkryłem jak poprawić mój kod, wystarczy najpierw wprowadzić d a dopiero później pojechać z pętlą; int a, b = 0, c = 0, d;
cin >> d; if( d < 0 ) c = 1;
for( int i = 0; i == 0; ) { cin >> a; b = b + a; if( d == a ) i = 1; else d = a;
problem rozwiązany. |
|
« 1 » |