Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Problem z zadaniem z ksiazki, petla for.

Ostatnio zmodyfikowano 2017-05-18 23:01
Autor Wiadomość
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ź.
C/C++
#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++ )
    {
        /* Jak to zrobic ? */
        cout << i;
    }
   
    return 0;
}
P-161247
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:
C/C++
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.
P-161248
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
P-161250
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.
P-161254
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ć ?
P-161259
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):
C/C++
#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;
}

C/C++
#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).
P-161261
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
P-161264
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.
P-161271
« 1 » 2
  Strona 1 z 2 Następna strona