PDA

Visualizza la versione completa : Istruzione ciclo FOR dopo contatore


marco476
18-01-2013, 09:49
Salve a tutti,
non riesco a risolvere un problema che penso sia banale.
Ecco il dilemma: se svolgo la somma dei primi n numeri naturali con questa tipologia di for, tutto fila liscio:



int somma_naturali(int n){
int s=0,i;
for (i = 1; i <= n; i++)
s+=i;
return s;
}


Se, invece, lo svolgo inserendo la somma nel ciclo for stesso, il risultato è diverso:



int somma_naturali(int n){
int s=0,i;
for (i = 1; i <= n; i++,s+=i);
return s;
}


Qualcuno sa dirmi perchè? L'istruzione non dovrebbe essere la stessa?
Grazie a tutti e scusate la perdita di tempo.

Saluti,
Marco

oregon
18-01-2013, 10:28
No, non è affatto la stessa. Prova a seguire passo passo cosa fa la for e comprendi.

marco476
18-01-2013, 11:39
Forse ho capito..
Il risultato non è lo stesso perchè la s viene incrementata solo dopo che viene incrementata la i, di conseguenza il risultato è fasullo.
Ho corretto così, dovrebbe andar bene, giusto?



int somma_naturali(int n){
int s=0,i;
for (i = 0; i < n; i++,s+=i);
return s;
}

MItaly
18-01-2013, 13:34
Di che linguaggio stiamo parlando esattamente? :stordita:

Loading