Dovresti farci qualche esempio di input per riprodurre il problema.
Comunque io partirei dal semplificare il for
for (i=2; i<n;i++, somma=punt[i-1] + punt [i-2])
if (somma != punt[i])
somma=0;
farei la funzione cosi
int funzione(int *punt, int n){
int i;
for (i=2; i<n;i++)
{
if ((punt[i-1] + punt [i-2]) == punt[i])
return 1;
}
return 0;
}