Salve!
Se compilo un programma in cui faccio uso della seguente funzione

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;
}
mi funziona tutto bene.
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!