Programa que cuenta los digitos de un numero ingresado. Por ejemplo: el numero 12 tiene 2 digitos, el 333 tiene 3 digitos, el 1512 tiene 4 digitos.
#include <stdio.h> #include <stdlib.h> /* Programa que cuenta los digitos de un numero ingresado */ int contarDigitos(int Num){ int Contador, Num2; Num2 = Num; Contador = 0; while(Num != 0){ Contador++; Num=(Num / 10); } printf("La cantidad de digitos del Numero [%d] es = %d\n",Num2,Contador); } int main(){ int Num; printf("Ingresa un numero : "); scanf("%d",&Num); printf("------\n"); contarDigitos(Num); system("pause"); }
Programa en C: Contar Digitos
Ey muchas gracias me ha servido 😀
Muy bueno!
Hola! Muy buen código. Me gustaría contribuir al blog comentando que con una sola línea se puede calcular la cantidad de digitos:
digitos = (int)log10(numero) + 1;
Sin embargo, este código tiene sus contras: para usar log10 se debe incluir math.h; si el numero es 0, no se debe evaluar el logaritmo; si el numero es negativo, se puede usar la función abs(), incluida en stdlib.h.
Por lo tanto, el código quedaría así:
int cant_digitos(int numero)
{
if (numero) // si el numero no es cero, similar a “if (numero != 0)”
return (int)log10(abs(numero)) + 1;
else
return 1; // el 0 es un digito, de todas maneras
}
// version de una sola linea (equivalente al anterior):
int cant_digitos(int numero)
{
return numero ? (int)log10(abs(numero)) + 1 : 1;
}
Aclaro que la idea no es alardear sobre la reducción de lineas, sino que mostrar como, usando una herramienta matematica, se puede lograr el mismo código, a costa de un par de funciones extras, claro.