Problema de conversión de tipos forzados en lenguaje C
¿Quién te lo dijo? ¿O lo probaste tú mismo? ¿Qué entorno y qué versión del compilador?
Hasta donde yo sé, y según mis pruebas, el resultado debería ser 0.0000000 en ambos casos.
Debido a que su A se define como tipo int, no hay diferencia entre 1/a y 1/2. Los resultados calculados son todos 0,5 y luego se redondean a 0,0. Si se define como tipo doble, es 0,5. ¿Es 0,5 cuando se convierte a doble?
En el lenguaje C general, si desea utilizar números de punto flotante para calcular números enteros, debe agregar un decimal, como 1/2, que debe cambiarse a 1,0/2. De esta forma, se utilizarán números de coma flotante en el proceso intermedio y el resultado es 0,500000.