[C con Clase] Programa en C

Salvador Pozo salvador en conclase.net
Vie Ene 4 12:26:22 CET 2013


El pasado 2013-01-04 10:38:14, Diego escribió:
 
D> No se como descomponer los dos numeros pedidos y poner su descomposicion en la casilla correspondiente

Hola:

La idea para descomponer números en sus potencias de 10 es relativamente simple. Basta con usar los operadores de división entera y módulo o resto.

Por ejemplo, tomemos el número 1242:

Usaremos una variable auxiliar para almacenar la potencia actual, empezando en 10.

num = 1242
pot = 1

Podemos obtener las unidades calculando el resto de dividir entre 10:

pot*(num % 10) = 1*(1242 % 10) = 2

Dividimos el número entre 10 para el siguiente dígito:

num = num / 10 = 1242 / 10 = 124

Y multiplicamos pot por 10:

pot = pot * 10 = 1 * 10 = 10

Y repetimos el proceso completo, mientras num sea distinto de cero:

pot*(num % 10) = 10*(124 % 10) = 40
num = num / 10 = 124 / 10 = 12
pot = pot * 10 = 10 * 10 = 100

pot*(num % 10) = 100*(12 % 10) = 200
num = num / 10 = 12 / 10 = 1
pot = pot * 10 = 100 * 10 = 1000

pot*(num % 10) = 1000*(1 % 10) = 1000
num = num / 10 = 1 / 10 = 0
pot = pot * 10 = 1000 * 10 = 10000

num es cero, de modo que hemos terminado.

Esto extrae las potencias en orden inverso al que muestras en tu problema, pero dado que el enunciado limita los dígitos a cuatro, puedes usar variables auxiliares para contener cada potencia, o un array de cuatro enteros.

Lo de la "casilla correspondiente" no lo entiendo.

Hasta pronto.

-- 
Salvador Pozo (Administrador)
mailto:salvador en conclase.net


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