[ Foro de C++ ]
Buenas tardes a todos, vengo a preguntar como puedo abordar un problema que me surgió haciendo el curso de c++, es sobre un ejercicio.
El ejercicio indica: "(4.1.4) Crear un programa calcule cuantas cifras tiene un número entero positivo (pista: se puede hacer dividiendo varias veces entre 10).", cabe recalcar que en el capitulo me están enseñando a usar la función While, así que intenté hacer el programa usando únicamente while.
Yo hice fue lo siguiente: creé dos variables, una para guardar el numero que introduce el usuario y el otro como contador de las cifras (el contador inicia con un valor de 1 en caso de que se introduzca un numero de solo un digito).
El siguiente paso pide al usuario un numero, luego comienza el bloque while que solo inicia si el numero es mayor a 9. Hasta ese momento el programa anda perfecto, el problema surge cuando se introduce un numero mayor a 99, un ejemplo es 100, que si lo uso el contador no suma y el resultado de las cifras siempre es 2.
Estuve pensando, pero por ahora esto es lo único que pude lograr, si saben una forma de resolver ese problema, les agradesco,
Código programado.
#include <iostream>
using namespace std;
int main()
{
cout << "Este progrma calcula cuantas cifras tiene un numero" << endl;
int numero;
int contador = 1;
cout << "Ingrese un numero: ";
cin >> numero;
while (numero > 9)
{
numero = numero / 10;
numero -= 10;
++contador;
}
cout << "El numero tiene " << contador << " sifras." << endl;
return 0;
}
Estás muy cerca, pero basta con que dividas el número entre 10 en cada pasada, para ir quitando la última cifra.
No necesitas restar nada.
Hola Nacho, quite "numero -=10" del bloque while y me indica las cifras de cualquier número, muchas gracias por la respuesta y por el curso, estoy aprendiendo mucho. Un saludo enorme y espero sigas con la pagina. ????????