Salve!
Se compilo un programma in cui faccio uso della seguente funzione
mi funziona tutto bene.codice:typedef long double Lf; void DM (FILE * after, FILE * info, int n, Lf s[2]) { int c; Lf J[4]; s[0]=s[1]=0.L; rewind(after); for(c=0; c<M; c++) { fscanf(after, "%Le\n", &J[0]); s[0] += J[0] / M; } rewind(after); for(c=0; c<M; c++) { fscanf(after, "%Le\n", &J[0]); s[1] += (J[0]-s[0])*(J[0]-s[0])/M; } s[1] = sqrtl (s[1]); fprintf(info, "# %d RG\n%+26.19Le %+26.19Le\n\n", n, s[0], s[1]); return; }
Ora se però sostituisco J[4] con J[1] (notare che uso solo J[0] !!!) il programma non funziona più!!!
Mi dà -nan come risultato dell'operazione. Lo stesso se al posto dell'array utilizzo un sola variabile tipo
Lf J;
Qualcuno mi sa spiegare l'origine di questo strano comportamento?
grazie!

Rispondi quotando