Skocz do zawartości

[c]Pętla for


Vexelpixel

Polecane posty

Witam, jestem początkujący i nie rozumiem pewnej rzeczy. Mianowicie:

 

c=1;

for(b=1; b<5; b+=2)

c+=c*b+c;

c*=(c%2)*10;

 

printf("b=%d c=%d", b,c);

 

To jest kawałek pętli, wg. logicznego toku rozumowania powinna się wykonać tak:

 

1)

b=1

c=1+1*1+1=3

c=3*(3mod2)*10=30

 

2)

b=3

c=30+ 3*30 +30= 150

c=150*(150mod2)*10=0

 

3)

b=5

c=0

 

Mógłby mi ktoś wytłumaczyć gdzie leży mój błąd? Program daje w wyniku b=5, c=150.

Pętla wykonuje się 3razy, po skończeniu drugiego obrotu wyrzuca c=0, więc za 3 razem też będzie miała =0. W drugim obrocie przy pierwszym działaniu wyrzuca 150 i tu się zastanawiam czy to nie jest po prostu ostatnia dodatnia wartość, ale wtedy to kompletnie nie miałoby sensu.

 

Zastanawia mnie czym kierował się autor języka tworząc sposób działania właśnie w taki sposób, którego na razie nie potrafię logiką objąć :)

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...