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

pytanie początkującego - prosta pętla while

Object Storage Arubacloud
0 głosów
214 wizyt
pytanie zadane 11 sierpnia 2019 w C i C++ przez Filip Rerek Nowicjusz (190 p.)

Cześć :) Jestem początkującym programistą. Obecnie szlifuję pętlę while, wymyślam zadania i je piszę. W jednym mam problem, ponieważ wyniki są za każdym razem złe i nie mam pojęcia, co napisałem nie tak. W zadaniu chodzi o to, że miesięcznie wrzucamy dziecku jakiś grosz do skarbonki, a program, wiedząc od którego roku życia dziecka i do którego roku życia dziecka oraz ile miesięcznie wrzucamy, policzy ile będzie pod koniec, np. na osiemnastkę.

#include <iostream>

using namespace std;

int wiek_mlodszy, wiek_starszy, oszczednosci_miesiecznie, oszczednosci=0;

int main()
{
        cout<<"Od ktorego roku zycia dziecka bedziesz wplacal pieniadze na jego konto oszczednosciowe: ";
        cin>>wiek_mlodszy;
        cout<<"Do ktorego roku zycia dziecka bedziesz wplacal pieniadze na jego konto oszczednosciowe: ";
        cin>>wiek_starszy;
        cout<<"Ile miesiecznie bedziesz odkladal na jego konto oszczednosiowe (w PLN): ";
        cin>>oszczednosci_miesiecznie;

    while(wiek_starszy>=wiek_mlodszy)

    {

        wiek_mlodszy++;
        oszczednosci=(wiek_starszy-wiek_mlodszy)*12*oszczednosci_miesiecznie;

        cout<<"Po "<<wiek_starszy-wiek_mlodszy<<". latach, na koncie Twojego dziecka bedzie "<<oszczednosci<<" PLN.";


    }



    return 0;
}

 

komentarz 11 sierpnia 2019 przez Undisputed Gaduła (3,040 p.)
16 linijka zamień warunek while(wiek_starszy>=wiek_mlodszy) na while(wiek_starszy>wiek_mlodszy) i przeanalizuj sobie to :)
komentarz 11 sierpnia 2019 przez tkz Nałogowiec (42,000 p.)

To nadal nie rozwiązuje problemu. 

#include <iostream>
 
using namespace std;
 
int wiek_mlodszy, wiek_starszy, oszczednosci_miesiecznie, oszczednosci=0;
 
int main()
{
        cout<<"Od ktorego roku zycia dziecka bedziesz wplacal pieniadze na jego konto oszczednosciowe: ";
        cin>>wiek_mlodszy;
        cout<<"Do ktorego roku zycia dziecka bedziesz wplacal pieniadze na jego konto oszczednosciowe: ";
        cin>>wiek_starszy;
        cout<<"Ile miesiecznie bedziesz odkladal na jego konto oszczednosiowe (w PLN): ";
        cin>>oszczednosci_miesiecznie;
    int ileOszczedza = wiek_starszy - wiek_mlodszy;
    while(ileOszczedza)
    {
        oszczednosci+=12*oszczednosci_miesiecznie;
        cout<<"Po "<<ileOszczedza<<". latach, na koncie Twojego dziecka bedzie "<<oszczednosci<<" PLN.";
        ileOszczedza--;
    }
 
    return 0;
}

 

komentarz 11 sierpnia 2019 przez Filip Rerek Nowicjusz (190 p.)

@Filip Rerek, dzięki bardzo za pomoc, wszystko przeanalizowałem. Jednak dalej wynik jest taki sam, mianowicie zamiast jednej odpowiedzi, przykładowo:

wiek_mlodszy=5

wiek_starszy=8

oszczednosci_miesieczne=10

"Po 3. latach na koncie dziecka będzie 240 PLN"

Jest:

"Po 3. latach na koncie dziecka będzie 240 PLN", "Po 2. latach na koncie dziecka będzie 120 PLN", "Po 1. latach na koncie dziecka będzie 0 PLN"

Liczba odpowiedzi zależy od różnicy wiek-starszy - wiek_mlodszy. Czy błąd leży w złym warunku? Obliczenia wydają się być dobre.

#include <iostream>

using namespace std;

int wiek_mlodszy, wiek_starszy, oszczednosci_miesiecznie, oszczednosci;

int main()
{
        cout<<"Od ktorego roku zycia dziecka bedziesz wplacal pieniadze na jego konto oszczednosciowe: ";
        cin>>wiek_mlodszy;
        cout<<"Do ktorego roku zycia dziecka bedziesz wplacal pieniadze na jego konto oszczednosciowe: ";
        cin>>wiek_starszy;
        cout<<"Ile miesiecznie bedziesz odkladal na jego konto oszczednosiowe (w PLN): ";
        cin>>oszczednosci_miesiecznie;

    while(wiek_mlodszy<wiek_starszy)

    {

        wiek_mlodszy++;
        oszczednosci=(wiek_starszy-wiek_mlodszy)*12*oszczednosci_miesiecznie;

        cout<<"Po "<<(wiek_starszy-wiek_mlodszy)+1<<". latach, na koncie Twojego dziecka bedzie "<<oszczednosci<<" PLN.";


    }



    return 0;
}

 

komentarz 11 sierpnia 2019 przez tkz Nałogowiec (42,000 p.)
#include <iostream>
  
using namespace std;
  
int wiek_mlodszy, wiek_starszy, oszczednosci_miesiecznie, oszczednosci=0;
  
int main()
{
        cout<<"Od ktorego roku zycia dziecka bedziesz wplacal pieniadze na jego konto oszczednosciowe: ";
        cin>>wiek_mlodszy;
        cout<<"Do ktorego roku zycia dziecka bedziesz wplacal pieniadze na jego konto oszczednosciowe: ";
        cin>>wiek_starszy;
        cout<<"Ile miesiecznie bedziesz odkladal na jego konto oszczednosiowe (w PLN): ";
        cin>>oszczednosci_miesiecznie;
    int ileOszczedza = wiek_starszy - wiek_mlodszy;
        oszczednosci = 12*oszczednosci_miesiecznie*ileOszczedza ;
        cout<<"Po "<<ileOszczedza<<". latach, na koncie Twojego dziecka bedzie "<<oszczednosci<<" PLN.";
  
    return 0;
}

 

2 odpowiedzi

+1 głos
odpowiedź 11 sierpnia 2019 przez michal_php Stary wyjadacz (13,700 p.)
W ogóle to nie jest za bardzo Ci potrzebna ta pętla do tego zadania.

Bo podajesz wiek zaczęła i końca co możesz już sobie zrobić różnice ile odkładasz w miesiącach i do tego możesz pomnożyć przez miesięczne odkładanie i masz wynik.
komentarz 11 sierpnia 2019 przez tkz Nałogowiec (42,000 p.)
No nie, pętla jest potrzebna, bo wypisuje "przebieg" tych oszczędności.
0 głosów
odpowiedź 11 sierpnia 2019 przez enigmatycznyclay Bywalec (2,450 p.)

Zamiast:

oszczednosci=(wiek_starszy-wiek_mlodszy)*12*oszczednosci_miesiecznie;

Daj:

oszczednosci += 12*oszczednosci_miesiecznie;

 

Podobne pytania

0 głosów
2 odpowiedzi 286 wizyt
pytanie zadane 1 maja 2017 w JavaScript przez Konfeusz Bywalec (2,810 p.)
0 głosów
2 odpowiedzi 177 wizyt
pytanie zadane 12 kwietnia 2017 w C i C++ przez Borys Kaczmarek Użytkownik (630 p.)
0 głosów
2 odpowiedzi 106 wizyt
pytanie zadane 29 października 2016 w C i C++ przez Daniel Dzwonkowski Nowicjusz (230 p.)

92,551 zapytań

141,399 odpowiedzi

319,531 komentarzy

61,938 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...