2004 – 1

Si consideri il seguente frammento di programma.

int calcola(int vett[], int n)
{
   int i, y, x;
   y=0;
   x=vett[0];
   for(i=0; i < n-1; i++)
      if(x < vett[i+1])
      {
         y=vett[i+1]-x+y;
         x=vett[i+1];
      }
   if(x-y > vett[i+1])
      y=x-vett[i+1];
   return y;
}

Dire che cosa restituisce la funzione “calcola” assumendo che venga invocata passando un vettore di lunghezza n con n maggiore di 2.


Soluzione: La differenza fra l’elemento massimo e l’elemento minimo presenti nel vettore.


Il comportamento della funzione è incomprensibile…