Tengo una duda de como determinar los digitos de un número

Iniciado por Felipe_Henriquez, 17 Agosto 2011, 00:40 AM

0 Miembros y 1 Visitante están viendo este tema.

тαптяα

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int num,contador=1;
    printf("Introduce un numero: ");
scanf("%i",&num);
while(num/10 !=0){
    num=num/10;
    contador++;
}
printf("Longitud: %i",contador);
return 0;

}

Alien-Z

#11
Buah, yo calentándome la cabeza y bastaba con una simple división  :xD

Saludos.

Felipe_Henriquez

:D Gracias a todos los grosos que contestaron Gracias!!!! de verdad.... :D estos pives de Deitel tienen buenisimos ejercicios por sección, un abrazo a todos los que contestaron y me ayudaron... no encontraba como dar con la solución. Y si alguien pilla la solución contar el número de dígitos sin funciones ni arreglos, que lo pueda postear. Un abrazo a todos!!!.

rir3760

La solucion exacta depende, principalmente, de los requisitos de validacion del algoritmo.

Por ejemplo si se espera, de facto, que la entrada sea valida consistiendo de un numero sin signo y posiblemente con decimales basta con:
#include <stdio.h>
#include <stdlib.h>

int main (void)
{
   int ch;
   int num_digitos;
   
   num_digitos = 0;
   while ((ch = getchar()) >= '0' && ch <= '9' || ch == '.')
      num_digitos++;
   
   printf("Numero de digitos: %d\n", num_digitos);

   return EXIT_SUCCESS;
}


Pero si se requiere de una validacion mas solida lo mejor es crear una pequeña maquina de estado.

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language