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

Prosty program C++. Co źle robię?

Object Storage Arubacloud
–1 głos
160 wizyt
pytanie zadane 5 marca 2017 w C i C++ przez WhiteHartLane Nowicjusz (170 p.)
Witam.

Otóż jutro mam sprawdzian z analizy programów C++. Proste programy z pętlami for - proste dla osób rozumiejących to hehe. Staram się jakoś uczyć tego, analizować i potem sprawdzać wyniki przy pomocy CodeBloka. Jednakże jeden program nie daje mi spokoju, najprostszy z nich się wydaje, a cały czas wychodzi mi inny wynik aniżeli po skompilowaniu go. Jestem totalnym tłukiem jeśli chodzi C++, więc rzecz jasna robię coś źle tylko pytanie, co?

#include <iostream>
using namespace std;
int main () {
int a=4, b=7'
for(int i=0; i<4; i++)
{ a = a+i;
b=b+a;}
cout<<b'
return 0;}

Mi wynik wychodzi cały czas 29, program pokazuje, że 33. Mógłby mi ktoś przedstawić co do czego dodawać, dlaczego wychodzi 33? Będę bardzo wdzięczny.

PS. To nie jest tak, że zrobiłem, wyszedł mi wynik inny i od razu przyleciałem tutaj z płaczem, naprawdę od kilku dni staram się to zrozumieć i nic.

4 odpowiedzi

0 głosów
odpowiedź 5 marca 2017 przez Czarek Stachurski Początkujący (440 p.)
wybrane 5 marca 2017 przez WhiteHartLane
 
Najlepsza
Pętla wykona sie 4 razy.

1 raz: a= 4 + 0 (bo i w tej iteracji równe jest 0)  b= 7 + 4 =11

2 raz: a= 4 + 1 (bo i w tej iteracji równe jest 1)  b= 11 + 5 =16

3 raz: a= 5 + 2 (bo i w tej iteracji równe jest 2) b= 16 + 7 =23

4 raz: a= 7 + 3 (bo i w tej iteracji równe jest 3)   b= 23 + 10 =33

Po wykonaniu pętli b jest równe 33.
+1 głos
odpowiedź 5 marca 2017 przez Chess Szeryf (76,710 p.)

Zatrzymaj kod kilukrotnie, a się dowiesz dlaczego. Instrukcją warunkową if zatrzymuj kod poprzez ==, sprawdzisz ile jest po 1 iteracji, czyli tutaj 0 itp.

#include <iostream>

using namespace std;

int main () {

int a=4, b=7;
for(int i=0; i<4; i++){
    a = a+i;
    b=b+a;

    if(i==0){ // później dla i==1, i==2, i==3
        cout<<b;
    }

}
    //cout<<b;
    return 0;

}

 

0 głosów
odpowiedź 5 marca 2017 przez niezalogowany
#include <iostream>

using namespace std;

int main ()
{
    int a=4, b=7;
    for(int i=0; i<4; i++)
    {
        a = a+i;
        cout<<"b="<<b<<" ---> a="<<a<<" ---> b+a = "<<b+a<<endl;
        b = b+a;
    }
    cout<<b<<endl;
    return 0;
}

Czy taki kod wyjaśnia sprawę? :D

komentarz 5 marca 2017 przez niezalogowany
Ty chyba nie uwzględniłeś, że a zmienia się co 1. To nie jest prawdą.
0 głosów
odpowiedź 5 marca 2017 przez MararOn Bywalec (2,620 p.)
1 iteracja: a==4 b==11 i==0
2 iteracja: a==5 b==16 i==1
3 iteracja: a==7 b==23 i==2
4 iteracja: a==10 b==33 i==3

 

Prawdopodobnie jak sam liczyłeś to cały czas jako i przyjmowałeś 1 ;p

Podobne pytania

0 głosów
1 odpowiedź 359 wizyt
pytanie zadane 23 sierpnia 2017 w C i C++ przez niezalogowany
0 głosów
1 odpowiedź 141 wizyt
0 głosów
1 odpowiedź 160 wizyt
pytanie zadane 27 lipca 2016 w C i C++ przez jegor377 Stary wyjadacz (13,230 p.)

92,550 zapytań

141,394 odpowiedzi

319,522 komentarzy

61,935 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!

...