Bercik97 Temat założony przez niniejszego użytkownika |
Problem z zadaniem z ksiazki, petla for. » 2017-05-18 17:13:13 Witam, mam problem z zadaniem z książki ( link = > http://imgur.com/a/HjXkw ). W skrócie chodzi o to żeby podać 2 liczby całkowite, pierwsza musi być mniejsza od drugiej, a program ma wypisać sumę liczb pomiędzy tymi podanymi + liczby podane. Czyli np. suma 2,9 to 44 etc. Wklejam mój kod. Nie wiem czy w dobra stronę pisałem ten kod ale zatrzymałem się na momencie w którym trzeba zsumować liczby. Program wypisuje mi te liczby i te pomiędzy ale nie wiem jak zrobić żeby mi je zsumował. Trochę szukałem na necie ale nic z tego. Pewnie ma to jakiś związek z tablicami. Liczę na szybką odpowiedź. #include <iostream> using namespace std;
int x, y, z, m, wynik;
int main() { cout << "Witaj. Podaj dwie liczby calkowite x i y ( x musi byc mniejsze od y ): \n"; cin >> x; cin >> y; z =( y - x ); m =( y - z ); for( int i = m; i <= y; i++ ) { cout << i; } return 0; }
|
|
maly7 |
» 2017-05-18 17:25:10 Jeśli wypisuje Ci poprawne liczby to po prostu je dodawaj do jakiejś zmiennej. Np. wynik += i; Dodatkowo zamiast: z =( y - x ); m =( y - z ); for( int i = m; i <= y; i++ ) Nie lepiej zrobić po prostu tak?: for( int i = x; i <= y; i++ ) Z tych wzorów na z i m wynika po prostu tyle, że m = x. |
|
Bercik97 Temat założony przez niniejszego użytkownika |
» 2017-05-18 17:37:39 No bez kitu, nie zauważyłem tego, że m = x. Wpisałem tak jak mówiłeś i wychodzą jakieś dziwne liczby ( wynik += i; ) link => http://imgur.com/a/CmtgZ . A tu jest drugie zdjęcie z cout<<i; link => http://imgur.com/a/zk0X9 |
|
maly7 |
» 2017-05-18 18:24:26 Wyniki prawdopodobnie są poprawe, za każdym wypisaniem wstaw znak nowej lin ('\n' lub endl). Wynik wyświetl dopiero po zakończeniu pętli. |
|
Bercik97 Temat założony przez niniejszego użytkownika |
» 2017-05-18 20:22:59 Dzięki działa :) Kurde już wcześniej bym to zrobił bez waszej pomocy, bo tak pisałem tylko tyle że w wewnątrz pętli for. I dalej nie rozumiem jednego, jaką to ma różnice pisanie tego wewnątrz a na zewnątrz? Może ktoś wyjaśnić ? |
|
Kinexity |
» 2017-05-18 20:38:23 Ja bym zaproponował tak wgl zrobić to jednym z tych dwóch sposobów (wg mnie na mnożyłeś trochę zmiennych): #include "iostream" using namespace std;
int main() { int liczba[ 2 ], suma; cout << "Podaj dwie liczby (pierwsza ma byc mniejsza): " << endl; cin >> liczba[ 0 ] >> liczba[ 1 ]; suma =( liczba[ 0 ] + liczba[ 1 ] ) *( liczba[ 1 ] - liczba[ 0 ] + 1 ) / 2; for(; liczba[ 0 ] <= liczba[ 1 ]; liczba[ 0 ] ++ ) { cout << liczba[ 0 ] << endl; } cout << "Suma ciagu wynosi: " << suma << endl; }
#include "iostream" using namespace std;
int main() { int liczba[ 2 ], suma = 0; cout << "Podaj dwie liczby (pierwsza ma byc mniejsza): " << endl; cin >> liczba[ 0 ] >> liczba[ 1 ]; for(; liczba[ 0 ] <= liczba[ 1 ]; liczba[ 0 ] ++ ) { cout << liczba[ 0 ] << endl; suma += liczba[ 0 ]; } cout << "Suma ciagu wynosi: " << suma << endl; }
Tak wgl to nie rozumiem po co chcesz jeszcze wypisywać te liczby (w zdaniu o tym nie ma). |
|
Bercik97 Temat założony przez niniejszego użytkownika |
» 2017-05-18 20:44:41 A to dla siebie tak, żeby zobaczyć czy działa, jak działa itp :P Tą książkę dla siebie przerabiam |
|
maly7 |
» 2017-05-18 22:15:38 I dalej nie rozumiem jednego, jaką to ma różnice pisanie tego wewnątrz a na zewnątrz? Jeśli "cout << wynik;" umieścisz w pętli która wykona się 10 razy to wyświetli ci się wynik 10 razy, jeśli po zakończeniu pętli - tylko raz. Jeśli wiesz jak działa pętla for to powinieneś to rozumieć, to są podstawy. Zastanów się i napisz czy dalej nie rozumiesz. |
|
« 1 » 2 |