Autor Tema: Multiplicación en C

0 Usuarios y 1 Visitante están viendo este tema.

01 Febrero, 2009, 07:55 pm
Leído 1953 veces

Lambda

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 348
  • Karma: +0/-0
  • Sexo: Masculino
He creado el siguiente algoritmo para multiplicar matrices. Previamente hice algoritmos para leerlas y escribirlas que posteriormente utilizo, pero tras multiplicar las matrices, no me aparece el resultado de la multiplicación. Lo que tengo es lo siguiente:



Código: [Seleccionar]
void multiplica (Matriz *M1, Matriz *M2) {
Matriz M3;
int i,j,k,l;

M3.filas=M1->filas;
M3.columnas=M2->columnas;
k=0;
l=0;
i=0; j=0;

while (k<M3.filas)  {
l=0;
 while (l<M3.columnas) {
     k=0;
     M3.elem[k][l]=0;
 l=l+1;
 }
k=k+1;
}

k=0;
l=0;
while (k<M3.filas)  {
l=0;
 while (l<M3.columnas) {
     k=0;
     M3.elem[k][l]=M3.elem[k][l] + (M1->elem[i][j] * M2->elem[j][i]);
j=j+1;
l=l+1;
 }
i=i+1;
k=k+1;
}

i=0;
j=0;
k=0;
l=0;
while (i<M3.filas)  {
j=0;
 while (j<M3.columnas) {
 M2->elem[i][j]= M3.elem[k][l];
 j=j+1;
 l=l+1;
 }
 i=i+1;
 k=k+1;
 }
return;}



Gracias,

01 Febrero, 2009, 07:56 pm
Respuesta #1

Lambda

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 348
  • Karma: +0/-0
  • Sexo: Masculino
Se me olvidaba explicar que lo que hago al final es asignar a la matriz dos el resultado que obtengo como producto, pues luego el resultado tiene que verse sobre la misma matriz dos.

03 Febrero, 2009, 11:03 am
Respuesta #2

Lambda

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 348
  • Karma: +0/-0
  • Sexo: Masculino
Tienes toda la razón, vaya error, al poner k=0, lo que hago es iniciar siempre en el inicio de fila, con lo que no consigo el resultado requerido.

Muchas gracias,