Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Koff en 26 Febrero 2016, 13:41 pm



Título: Multiplicar elementos en un array bidimensional en C
Publicado por: Koff en 26 Febrero 2016, 13:41 pm
Hola,

tengo un problema a la hora de multiplicar los elementos internos en una matriz bidimensional... me explico...

La matriz internamente es así (el número de filas puede variar pero de momento con 3):

2 2 3 4 2 2 5 2
3 2 2 3 2 3 2 3 2 2 3
1 4 3 3 3 3

Ahora es donde viene la complejidad, habría un caso base y un resto, es decir, el caso base sería el primer elemento de cada fila, en este caso 2x3x1.

Para el resto lo que habría que hacer es colocarse en la siguiente posición de cada fila y avanzar tantas posiciones como elementos aparecen en el primer elemento y realizar la siguiente multiplicación:

2 x 2 x 4 a[0][1] * a[1][1] * a[2][1]
2 x 2 x 4 a[0][1] * a[1][2] * a[2][1]
2 x 3 x 4 a[0][1] * a[1][3] * a[2][1]
3 x 2 x 4 a[0][2] * a[1][1] * a[2][1]
3 x 2 x 4 a[0][2] * a[1][2] * a[2][1]
3 x 3 x 4 a[0][2] * a[1][3] * a[2][1]

a continuación, colocarse en el 4 (de la fila 0) y coger los 5 elementos siguientes ya que los dos elementos anteriores suman 5 (el 2 y 3), y realizar las multiplicaciones de nuevo.

Se puede plantear así también:
2
2 3
4 2 2 5 2

3
2 2 3
2 3 2 3 2 2 3

1
4
3 3 3 3

es lo mismo que antes, el caso base sería el primer nivel, y a continuación se multiplicaría cada uno de los elementos de los siguientes niveles tantas veces como aparezcan en el nivel anterior.

Si me podéis ayudar os lo agradecería.

Saludos