PDA

View Full Version : [C] Spiegazione Frammento di programma


biondokkiverdi
31-01-2012, 10:55
Buongiorno ragazzi, non riesco a svolgere questo esercizio..qualcuno di voi sarebbe in grado di spiegarmelo? :)
Dato il seguente frammento di programma:

int chefaccio (int , int, int);

int main (void){
printf("Risultato=%d\n",chefaccio(1,2,5)+-2);

return 0;
}

int chefaccio (int b, int a, int c)
{
int indice, ris=1;
for (indice=a+b-2; indice>c; indice-=a-2) ris+=indice*(-1);
return ris;
}
Dato il seguente frammento di programma:

int chefaccio (int , int, int);

int main (void){
printf("Risultato=%d\n",chefaccio(1,2,5)+-2);

return 0;
}

int chefaccio (int b, int a, int c)
{
int indice, ris=1;
for (indice=a+b-2; indice>c; indice-=a-2) ris+=indice*(-1);
return ris;
}

Indicare cosa viene stampato a video quando eseguito.

!fazz
31-01-2012, 11:02
secondo te che fa?

biondokkiverdi
31-01-2012, 11:10
La funzione da come return ris che è il valore che verrà stampato dalla printf alla fine del programma..solo che non riesco a sviluppare la for della funzione..
perchè dovrebbe essere:

for (indice=1; indice>5; indice=indice-0)..
e dunque
ris=ris+indice*(-1)..

Quando avvio il programma però mi da come risultato -1..ma non riesco a capire perchè esca questo -1..

micoud
31-01-2012, 13:53
perche' l' operazione ris=ris+indice*(-1) non viene mai eseguita in quanto per indice=1 salti il test indice>c
la funzione restituisce il valore di ris dichiarato (=1) precedentemente al ciclo => 1-2=-1