[C con Clase] Mostrar los dígitos de un entero de 5 dígitos

José Luis Torre joseluistorrehernandez en gmail.com
Jue Ago 8 11:40:08 CEST 2013


Hola:

En la página https://sites.google.com/site/sencillamentec/digitos puedes
ver tres formas diferentes de solucionar el problema con el que estás
trabajando; quizás te pueda aportar alguna idea.

Saludos
José Luis


El 8 de agosto de 2013 04:42, Davidson, Steven <srd4121 en njit.edu> escribió:

> Hola Humberto,
>
> 2013/8/7 Humberto Boone Abdo <h.boone en outlook.com>
>
>> Gracias, ya lo he podido hacer y al parecer si me funcionó. Aquí el
>> código. Entonces lo que logré entender es que cuando se divide el entero
>> entre el número (1, 10, etc.) se almacena en la variable sólo lo que esta
>> antes que el punto porque es del tipo 'int' y sólo pude manejar enteros.
>> Después en la parte de dígitos finales
>>
>
> Hasta cierto punto, tienes razón. Realmente se trata de una división entre
> enteros y por lo tanto, el resultado es un entero. Es decir, la operación
> es quien realiza esta división especial, entre enteros, mientras que la
> división entre números de coma flotante (o punto flotante) es otra
> operación diferente.
>
> sucede algo similar aquí según yo, el 10 hace que se mueva el punto hasta
>> que sólo quede un dígito después del punto, que ese dígito sería el residuo
>> y  éste es el dígito que ocupa la ubicación del entero.
>>
>
> Correcto; así es como funciona en las matemáticas.
>
> Otra duda, leí por ahí que en los lenguajes de programación el 0 es como
>> sí fuera uno (o lo primero), entonces yo al primer dígito le puse el nombre
>> a su variable de d0 o df0 no sé si esto esté bien.
>>
>>
> Casi. Lo que estás comentando es cuando usemos arrays (o a veces llamados
> "arreglos" o "vectores"). El índice del primer elemento en un array es
> SIEMPRE 0 (cero). Sin embargo, en tu caso, no estás usando arrays, sino
> meras variables. Puedes usar cualquier nombre válido para una variable; el
> hecho de que tenga un 0 o no altera que sigue siendo una variable.
>
>
> En cuanto al código fuente que escribes, podrías hacer uso del valor
> guardado en una variable anterior. Por ejemplo,
>
> int d0 = entero; // 42339
>
> int d1 = d0 / 10; //4233
>
> int d2 = d1 / 10; //423
> ...
>
> Intercalando las operaciones posteriores y reescribiendo lo anterior,
> tenemos,
>
> int df0 = entero % 10; // Residuo 9
>
> int d1 = entero / 10; //4233
>
> int df1 = d1 % 10; // Residuo 3
>
> int d2 = d1 / 10; //423
> int df2 = d2 % 10; // Residuo 3
> ...
>
> Viendo que 'd1', 'd2', 'd3', etc. se basan en 'entero', podríamos
> reescribir lo anterior reusando esta misma variable; esto es,
>
> int df0 = entero % 10; // Residuo 9
>
> entero /= 10; //4233
> int df1 = entero % 10; // Residuo 3
>
> entero /= 10; //423
> int df2 = entero % 10; // Residuo 3
> ...
>
>
> Claro está, podríamos usar un array para ir guardando cada dígito en su
> lugar (del último elemento al primero), y nos ahorraríamos definir
> explícitamente las 5 variables, 'df0', 'df1', etc.. De hecho, esto nos
> permitiría usar un bucle 'while' para ir guardando cada dígito, mientras
> "recortamos" 'entero'. El patrón es simplemente,
>
> entero /= 10;
> digito = entero % 10;
>
>
> Espero que esto aclare un poco más el tema.
>
> Steven
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>



-- 
José Luis Torre
ww.ehu.es
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20130808/5955e887/attachment.html>


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