Cómo calcular decimales en c
Esto depende del formato en el que se ingresa el decimal.
Si la entrada es %s, que es un formato de cadena, primero debe encontrar la posición del punto decimal y luego calcular la longitud del número después del punto decimal.
Para una implementación específica, consulte:
#include?
#include?
# include?
int?main(int?argc,char*?argv[])
{
char?a [128] ;
while(scanf("%s",a)!=EOF)
{
if(strstr(a,"." ) != NULL)
printf("%d\n",strlen(strstr(a,".") +1));
¿otra cosa?
printf ("0\n");
}
sistema("pausa");
retorno?0;?
}
Si presiona %f (correspondiente al decimal de punto flotante) o %lf (doble decimal) para leer, primero debe eliminar la parte entera, luego multiplicar la parte decimal por 10 y restar la parte entera a saber es igual a 0, estadísticamente, multiplicado por 10 veces, pero dado que los números de coma flotante almacenados en la computadora no son valores precisos, hacer esto a menudo no da el resultado correcto. Puedes usar sprintf(str,"%g",f);;, pero como f no es un valor exacto después de todo, todavía habrá algunos problemas. El código fuente es el siguiente:
#. incluir? #include? #include? #include? #include? #include?lt;string.h> int?main(int?argc,char* ?argv[]) { char?a[128]; float?f; while(scanf(" %f",&f) ! =EOF) { sprintf(a,"%g",f); if(strstr(a, ".") != NULL) printf("%d\n",strlen(strstr(a,".") +1)); ¿si no? p> printf ("0\n"); } sistema("pausa"); retorno?0;? p> } Este es el último error que ocurre, por lo que al determinar el número exacto de dígitos después del punto decimal, es mejor leerlo como una cadena, que coincide con la forma Las máquinas de Turing funcionan.