¿Puede explicar la salida de este programa C? Supongo que el problema es que la pila se está dañando durante la llamada a la función printf("%d\n",t);
porque estoy presionando un float
pero leyendo un int
. No estoy seguro.Resultado inesperado en el programa C
#include <stdio.h>
int main()
{
long x;
float t;
scanf("%f",&t);
printf("%d\n",t);
x=30;
printf("%f\n",x);
{
x=9;
printf("%f\n",x);
{
x=10;
printf("%f\n",x);
}
printf("%f\n",x);
}
x==9;
printf("%f\n",x);
}
Y la salida
$ ./a.out
20.39
0
20.389999
20.389999
20.389999
20.389999
20.389999
$
Necesita compilar su código con más advertencias de compilación habilitadas, y preste atención a las advertencias que le da (antes de publicar el código en SO). –
@Jonathan Leffler: Al leer la Q, él sabe que lo está haciendo mal, pero me gustaría entender lo que realmente sucede. Sin embargo, debería haber sido más explícito e incluir información de compilador/plataforma. – Erik