Ciao ragazzi l'esercizio mi chiede cosa stampa il seguente programma:
int main () {
inti i;
int j;
for ( i=0;j<=10;i++) {
for (J=0; (j+1)*(j+1)<=i;J++);
printf("%i, " ,j);
}
for (i=2;i<=30;i++) {
for(j=2;i%j !=0;j++);
if(j==i)
printf("%i\n",i);
}
}
A questo punto la mia domanda è , io eseguo la prima iterazione con i =0 , "entro" nel secondo for e mi accorgo che la condizione non è verificata cosi non eseguo il primo printf, cosi proseguo ed "entro nel terzo for" e mi inizializza la variabile i a 2 , cosi dato che nel 4° for e verificta la condizione verifico l if in questo caso risulta vero e quindi stampo i che dovrebbe essere due .
Ovviamente la soluzione dice che la prima iterazine stampa 0 ma non capisco perchè?
Mi potete aiutare a ragionare con i for annidati ?
Grazie mille
int main () {
inti i;
int j;
for ( i=0;j<=10;i++) {
for (J=0; (j+1)*(j+1)<=i;J++);
printf("%i, " ,j);
}
for (i=2;i<=30;i++) {
for(j=2;i%j !=0;j++);
if(j==i)
printf("%i\n",i);
}
}
A questo punto la mia domanda è , io eseguo la prima iterazione con i =0 , "entro" nel secondo for e mi accorgo che la condizione non è verificata cosi non eseguo il primo printf, cosi proseguo ed "entro nel terzo for" e mi inizializza la variabile i a 2 , cosi dato che nel 4° for e verificta la condizione verifico l if in questo caso risulta vero e quindi stampo i che dovrebbe essere due .
Ovviamente la soluzione dice che la prima iterazine stampa 0 ma non capisco perchè?
Mi potete aiutare a ragionare con i for annidati ?
Grazie mille