El fallo está en que un tipo char almacena caracteres. ¿Puedes almacenar números?, si, pero lo que almacena es el símbolo no el operando y además solo guarda el primer dígito. Por ejemplo: si le introduces el número 123.456, lo único que va a almacenar es el "1" (un solo caracter).
Y otra cosa es que cuando usas la función "trunc" no se ejecuta sobre el número almacenado (el 1) sino por su valor en ASCII (no hay cifras reales), por eso mismo siempre te dice que es un entero.
Para solucionarlo lo único que tienes que cambiar es el tipo a float:
Saludos.
Y otra cosa es que cuando usas la función "trunc" no se ejecuta sobre el número almacenado (el 1) sino por su valor en ASCII (no hay cifras reales), por eso mismo siempre te dice que es un entero.
Para solucionarlo lo único que tienes que cambiar es el tipo a float:
Código (cpp) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//Este programa muestra los valores de los tipos de datos//
int main()
{
float dato;
printf("Dame un dato\n");
scanf("%f",&dato);
if(trunc(dato)-dato==0)
printf("Es un tipo de dato int\nCon un rango de -32,768 a 32,767\n");
else
printf("Es un tipo de dato float\nCon un rango de 3.4 E-38 a 3.4 E+38\n");
return 0;
}
Saludos.