Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rafael.t.a

Erro usando matriz

Recommended Posts

int** multiplicar(int** mat, int n, int m){
		int i,j,k,ac = 0;
		int **trp, **mult;
	 
		//n == numero de linhas; m == numero de colunas;
		trp = (int**) malloc(n * sizeof(int*));
		for(i = 0;i < n;i++)
			  trp[i] = (int*) malloc(m * sizeof(int));

		//transformando em matriz transposta;
		for(i = 0;i < m;i++){
			 for(j = 0;j < n;j++){
				  trp[j][i] = mat[i][j];
			 }
		}
		mult = (int**) malloc(n * sizeof(int*));
		for(i = 0;i < n;i++)
			mult[i] = (int*) malloc(m * sizeof(int));
		
	   //fazendo a multiplicacao
	   for(i = 0;i < n;i++){
		   for(j = 0;j < m;j++){
			   for(k = 0;k < m;k++){
					ac = ac + mat[i][k] * trp[k][j];
		   }
		   mult[i][j] = ac;
	   
	   }
	   return mult;
}

Não está ocorrendo a multiplicação corretamente....

Gostaria de saber qual o erro????

Compartilhar este post


Link para o post
Compartilhar em outros sites

 //n == numero de linhas; m == numero de colunas;

 

Por que não linhas e colunas?

 

 

for(i = 0;i < n;i++){
	   for(j = 0;j < m;j++){
		   for(k = 0;k < m;k++){
				ac = ac + mat[i][k] * trp[k][j];
	   }
	   mult[i][j] = ac;

   }

 

Você nao deveria zerar o ac?

Compartilhar este post


Link para o post
Compartilhar em outros sites
Não entendi...

 

Se tem que comentar as variáveis pra dizer pra quê servem é porque o nome delas é ruim.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.