Oltre al consiglio di MItaly, tieni presente che con %f non potrai mai stampare una quantità piccola come l'epsilon macchina con la giusta precisione.
codice:
#include<stdio.h>
float epsilonmacchina();
int main(void)
{
float a;
a = epsilonmacchina();
printf("nel main %e\n", a);
getchar();
return 0;
}
float epsilonmacchina()
{
float epsilon = 1.0F;
while ((1.F + epsilon) > 1.F) {
epsilon /= 2.F;
}
printf("nella funzione %e\n", epsilon);
return epsilon;
}
codice:
nella funzione 5.421011e-20
nel main 5.421011e-20