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

3 thoughts on “Programa en C: Contar Digitos

  • 7 Junio 2016 at 3:36 am
    Permalink

    Ey muchas gracias me ha servido 😀

    Reply
  • 4 Diciembre 2017 at 23:39 pm
    Permalink

    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.

    Reply

Ingresa un comentario:

This site uses Akismet to reduce spam. Learn how your comment data is processed.

A %d blogueros les gusta esto: