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".
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 :|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; }
Grazie mille.

Rispondi quotando