[C con Clase] Cómo leer Los dígitos de cualquier un número solicitado por teclado??

Steven Davidson srd4121 en njit.edu
Vie Feb 26 06:57:40 CET 2010


Hola Cristian,

Cristian David Villota Jacome wrote:
> Hola a todos:
> 
> Bueno primero que todo quiero decirles que soy nuevo en las listas de
> correo así que espero no cometer ninguna falta contra de estas. Y

Ante todo, bienvenido al grupo y a este "mundillo" de la programación.

> bueno mi asunto es el siguiente, necesito crear un programa en
> Borland C++ que pueda leer cada dígito de un número que escriba el
> usuario, después de leer cada dígito los sume y saque su promedio
> así:
> 
> El programa le pedirá al usuario que digite un numero de cualquier
> valor como por ejemplo:
> 
> escribimos el número: 8234;
> ahora leemos cada dígito: 8,2,3 y 4.
> 
> luego los sumamos 8+2+3+4=17
> 
> y sacamos su promedio: 17/4=4.25
> 
> Entonces si alguien me puede ayudar a resolver este programa se lo 
> agradecería infinitamente....
> 

La forma más sencilla es manipulando la información como una cadena de 
caracteres. De esta manera, tendremos cada dígito representado como un 
carácter en cada elemento que podemos acceder directamente. Tendremos 
que recorrer la cadena accediendo a cada carácter y convertirlo al 
número que representa. Por ejemplo,

int nDigito;
char szCadena[100];
...
for( ... )
   nDigito = szCadena[i] - '0';


Ahora bien, si se trata de un ejercicio en el que tienes que manipular 
un número entero, entonces el método se basa en realizar algunas 
operaciones aritméticas para conseguir cada dígito. Las operaciones que 
necesitas son las divisiones para hallar el cociente y el resto. Por 
ejemplo,

nDigito = numero % 10;

El resto de la división nos dará el dígito de las unidades. El cociente 
nos daría el número restante sin ese mismo dígito; o sea,

numero /= 10;

Usemos tu ejemplo,

8234 % 10 = 4, y
8234 / 10 = 823

Ahora podemos continuar con el algoritmo:

823 % 10 = 3, y
823 / 10 = 82

82 % 10 = 2, y
82 / 10 = 8

8 % 10 = 8, y
8 / 10 = 0

Como el cociente es 0, ya no tenemos más dígitos a hallar.


Espero que esto te sirva.

Steven





Más información sobre la lista de distribución Cconclase