Kad je uvjet istinit, [tt]s[/tt] se poveca za [tt]j[/tt]; inace se taj korak preskoci, a sve drugo je isto.
Ako te zanima sto se dogadja, ubaci pomocne ispise i provjeri:
[code:1]#include<stdio.h>
int main(void) {
int k,i,j,s;
scanf("%d", &k);
for(i=1; i<=k; i++) {
printf("i-petlja: i=%d\n", i);
s=0;
for(j=1; j<i; j++) {
printf(
" j-petlja prije if: i=%d, j=%d, s=%d, uvjet=%s\n",
i, j, s, (i%j==0 ? "istina" : "laz")
);
if(i%j==0)
s = s+j;
printf(" j-petlja poslije if: i=%d, j=%d, s=%d\n", i, j, s);
}
if(i<s) printf("%d\n", i);
}
return 0;
}[/code:1]
Ispis ovoga za input [tt]18[/tt] je:
[code:1]i-petlja: i=1
i-petlja: i=2
j-petlja prije if: i=2, j=1, s=0, uvjet=istina
j-petlja poslije if: i=2, j=1, s=1
i-petlja: i=3
j-petlja prije if: i=3, j=1, s=0, uvjet=istina
j-petlja poslije if: i=3, j=1, s=1
j-petlja prije if: i=3, j=2, s=1, uvjet=laz
j-petlja poslije if: i=3, j=2, s=1
i-petlja: i=4
j-petlja prije if: i=4, j=1, s=0, uvjet=istina
j-petlja poslije if: i=4, j=1, s=1
j-petlja prije if: i=4, j=2, s=1, uvjet=istina
j-petlja poslije if: i=4, j=2, s=3
j-petlja prije if: i=4, j=3, s=3, uvjet=laz
j-petlja poslije if: i=4, j=3, s=3
...[/code:1]
Za ostatak ispisa, izvedi na svom racunalu, da sad ne pretrpavam post. Ako bude konkretnijih pitanja zasto se nesto nekako izvelo, pitaj slobodno, ali precizno.
Usput, programe je puno lakse pratiti ako su pristojno napisani (obrati paznju na uvlacenja kod mene, u usporedbi s tvojim kodom).
Kad je uvjet istinit, s se poveca za j; inace se taj korak preskoci, a sve drugo je isto.
Ako te zanima sto se dogadja, ubaci pomocne ispise i provjeri:
Kod: | #include<stdio.h>
int main(void) {
int k,i,j,s;
scanf("%d", &k);
for(i=1; i<=k; i++) {
printf("i-petlja: i=%d\n", i);
s=0;
for(j=1; j<i; j++) {
printf(
" j-petlja prije if: i=%d, j=%d, s=%d, uvjet=%s\n",
i, j, s, (i%j==0 ? "istina" : "laz")
);
if(i%j==0)
s = s+j;
printf(" j-petlja poslije if: i=%d, j=%d, s=%d\n", i, j, s);
}
if(i<s) printf("%d\n", i);
}
return 0;
} |
Ispis ovoga za input 18 je:
Kod: | i-petlja: i=1
i-petlja: i=2
j-petlja prije if: i=2, j=1, s=0, uvjet=istina
j-petlja poslije if: i=2, j=1, s=1
i-petlja: i=3
j-petlja prije if: i=3, j=1, s=0, uvjet=istina
j-petlja poslije if: i=3, j=1, s=1
j-petlja prije if: i=3, j=2, s=1, uvjet=laz
j-petlja poslije if: i=3, j=2, s=1
i-petlja: i=4
j-petlja prije if: i=4, j=1, s=0, uvjet=istina
j-petlja poslije if: i=4, j=1, s=1
j-petlja prije if: i=4, j=2, s=1, uvjet=istina
j-petlja poslije if: i=4, j=2, s=3
j-petlja prije if: i=4, j=3, s=3, uvjet=laz
j-petlja poslije if: i=4, j=3, s=3
... |
Za ostatak ispisa, izvedi na svom racunalu, da sad ne pretrpavam post. Ako bude konkretnijih pitanja zasto se nesto nekako izvelo, pitaj slobodno, ali precizno.
Usput, programe je puno lakse pratiti ako su pristojno napisani (obrati paznju na uvlacenja kod mene, u usporedbi s tvojim kodom).
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju. 
|