Ciao a tutti,rieccomi, stavo provando a fare un programmino che chiede di determinare se un valore inserito da tastiera appartiene o meno alla successione di padovan,per chi non sapesse cos'è eccola:

http://it.wikipedia.org/wiki/Successione_di_Padovan
(in pratica dati 111224... il secondo 2 è dato da 1+1 e il 4 da 2+2, i vari addendi non sono altro che il precedente e il precedente del precedente)

il professore ci ha suggerito di inserire "manualmente" i primi 3 valori,cioè 1,1,1.
Il problema è che,innanzitutto, è infinita,quindi spero di aver fatto bene a limitare il for a 50,seconda cosa,appena il programma si addentra nel for impazzisce e mi restituisce errore.
Mi pare che succeda quando con il ciclo for si finisce in zone della memoria "non previste".

codice:
#include <stdio.h>#include <stdlib.h>


int main()
{
    int pdv[50]={1,1,1};
    int a,i,j;
    
    
    do
    {
        printf("inserire un numero >0 per verifica appartenenza a serie padovan");
        scanf("%d",&a);
    }
    while(a<=0);
    


    for(i=3;i++;i<50)
    {
           pdv[i]=pdv[i-3]+pdv[i-2];           
    }
    for(j=0;j++;j<50)
    {
                      if(a==pdv[j])
                      {
                                   printf("ok appartiene ai primi 50 valori della serie di padovan");
                      }
                      else
                      {
                          printf("non appartiene ai primi 50 valori della serie di padovan");
                      }
    }
    
    system("pause");
    return 0;
}
il valore di i l'ho fatto partire da 3 anzichè da zero perchè mi serviva proprio il 3 come valore di partenza,altrimenti non sarei riuscito a calcolare gli elementi della successione.So che c'è qualcosa che mi sfugge di imbarazzante ma non riesco a vederlo :|

Grazie mille.