Ah no, ho modificato appunto il codice in questo modo! Adesso funziona.
codice:
/* Prendere in input vettore di 27 numeri e dare come risultato 1 se la
* sequenza di numeri è perfetta, 0 se non lo è */
#include <stdio.h>
#include <stdlib.h>
int isPerfect (int *seq,int *isperfect) {
int i=0;
for (i=0;i<(sizeof(seq)/sizeof(int));i++) {
i++;
if (seq[i]==seq[seq[i]+2]) *isperfect=1;
else *isperfect=0;
}
return (int) isperfect;
}
int main()
{
int i=0,n,isperfect=0,*seq=NULL;
printf("Inserisci 0 per terminare la sequenza\n");
do {
seq=(int *)realloc(seq,((i+1)*sizeof(int)));
//Acquisisco
printf("\nInserisci il %d numero: ",i+1);
scanf("%d",&n);
//Inserisco valore nell'array
seq[i]=n;
i++;
} while(n!=0);
//Chiamo la funzione isPerfect
isPerfect(seq,&isperfect);
if (isperfect==1) printf("La sequenza di numeri è perfetta");
else printf("La sequenza di numeri non è perfetta");
free(seq);
return 0;
}