Programación General => C/C++ => Mensaje iniciado por: kingston en Lunes 5 de Febrero de 2007, 15:41
Título: Alguien Me Puede Ayudar Con El Error????
Publicado por: kingston en Lunes 5 de Febrero de 2007, 15:41
Wenas!
Tengo hecho este código para calcular la potencia enésima de una matriz. Pero el resultado obtenido no es correcto... Alguien podría decirme dónde está mi error???
void MatrizEnesima (int m1[][9], int producto[][9], int filas1, int columnas1, int columnas2) /*funcion matriz enesima*/ { int i, j, k, n; int aux[9][9];
/*Asignamos el mismo valor de la matriz m1 a la matriz aux*/ for (i=0; i<filas1; i++) { for(j=0; j<columnas2; j++) { aux[j] = m1[j]; } }
La función MultiplicarMatrices funciona correctamente. Com habeis podido observar, se trata de programación en C.
Gracias
Título: Re: Alguien Me Puede Ayudar Con El Error????
Publicado por: hano en Lunes 5 de Febrero de 2007, 16:24
¿Cuando inicializas 'n'? ¿No debería ser un parámetro?
Luis Javier López Arredondo
Título: Re: Alguien Me Puede Ayudar Con El Error????
Publicado por: kingston en Lunes 5 de Febrero de 2007, 17:13
:( ... No me habia dado cuenta, pero he probado iniciándola y tampoco me da el resultado... Algún error más?
Gracias.
Título: Re: Alguien Me Puede Ayudar Con El Error????
Publicado por: hano en Lunes 5 de Febrero de 2007, 17:45
1. Comprueba que el método de multiplicar matrices no modifica las originales, que inicializa todo correctamente y no hay efectos colaterales de su invocación.
2. Por lo que puedo deducir, la función MultiplicarMatrices hace producto=m1*aux, luego, pregunto, ¿no debería ser como sigue?
Código: Text
for(k=0; k<columnas2; k++)
{
aux[j][k] = producto [j][k];
}
De hecho, es lo que diche el comentario (/*Copiamos la matriz resultante en aux*/), pero lo hace alrevés.
3. ¿Influye en el resultado que las multiplicaciones se realicen por la izquierda? ¿Y si lo haces por la derecha?
Luis Javier López Arredondo
Título: Re: Alguien Me Puede Ayudar Con El Error????
Publicado por: kingston en Lunes 5 de Febrero de 2007, 18:05
He cambiado el punto 2 que me has dicho pero sigue sin salir...
¿Cómo puedo comprobar esto??
1. Comprueba que el método de multiplicar matrices no modifica las originales, que inicializa todo correctamente y no hay efectos colaterales de su invocación.
Y el punto 3, no comprendo a qué te refieres, porque no es lo mismo multiplicarla a la izquierda que a la derecha...
3. ¿Influye en el resultado que las multiplicaciones se realicen por la izquierda? ¿Y si lo haces por la derecha?De hecho, es lo que diche el comentario (/*Copiamos la matriz resultante en aux*/), pero lo hace alrevés.