Ir para conteúdo

Arquivado

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

viciado

[Resolvido] Matriz

Recommended Posts

Já deu alguma pesquisada sobre multiplicação de matrizes? O que você já fez até agora?

Compartilhar este post


Link para o post
Compartilhar em outros sites

como já está definido ?? usei constantes cara. Agora se quer que o usuário entre com a dimensão da matriz, vai ter que alterar algo :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual a sua dúvida?

você vai fazer tudo no main ou vai fazer alguma função pra retorno da multiplicação?

O usuário deverá entrar com o tamanho da matriz? ou o tamanho é fixo? tipo mat[3][3]?

 

é mto simples...

faça a leitura das duaz matrizes e faça uma terceira matriz pra receber a multiplicação

tipo

 

mat_resul[j] = mat_um[j] * mat_dois[j];

 

 

 

 

Espero ter ajudado

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual a sua dúvida?

você vai fazer tudo no main ou vai fazer alguma função pra retorno da multiplicação?

O usuário deverá entrar com o tamanho da matriz? ou o tamanho é fixo? tipo mat[3][3]?

 

é mto simples...

faça a leitura das duaz matrizes e faça uma terceira matriz pra receber a multiplicação

tipo

 

mat_resul[j] = mat_um[j] * mat_dois[j];

 

 

 

 

Espero ter ajudado

[]'s

 

 

Multiplicação da matriz não é feita assim

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é assim?

Bom então acho q você ta tentando fazer outra coisa,ou realmente eu nao entendi oque você quer fazer, pq se você quer a resultante da multiplicação é assim.. experimenta rodar esse algoritmo

 

#include<iostream>
using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{
	int matres[3][3],matum[3][3],matdois[3][3],i,j;


	for(i=0;i<3;i++)
		for(j=0;j<3;j++)
							   cin>>matum[i][j];

	 
	for(i=0;i<3;i++)
		for(j=0;j<3;j++)
			cin>>matdois[i][j];

	for(i=0;i<3;i++)
		for(j=0;j<3;j++)
	matres[i][j] = matum[i][j] * matdois[i][j];

	for(i=0;i<3;i++){
		for(j=0;j<3;j++){
			cout<<matres[i][j]<<" ";
		}
		cout<<endl;	
		
	}
	system("pause");

	return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

dei um find no google e olha como eu achei:

void MultiplicaMatrizes(int M1[100][100],int L1, int C1, int M2[100][100], int L2, int C2, int *M3[100][100]) 
{
	if(C1 != L2) {
		printf("Soh pode haver multiplicacao se C1 = L2");
		return;
	}
	for(int i = 0; i < L1; i++) {
		for(int j = 0; j < C2; j++) {
			M3[i][j] = 0;
			for(int k = 0; k < C1; k++) {
				M3[i][j] += M1[i][k] * M2[k][j];
			}
		}
	}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual a sua dúvida?

você vai fazer tudo no main ou vai fazer alguma função pra retorno da multiplicação?

O usuário deverá entrar com o tamanho da matriz? ou o tamanho é fixo? tipo mat[3][3]?

 

é mto simples...

faça a leitura das duaz matrizes e faça uma terceira matriz pra receber a multiplicação

tipo

 

mat_resul[j] = mat_um[j] * mat_dois[j];

 

 

 

 

Espero ter ajudado

[]'s

ahuehauhaeae como vai multiplicar matrizes assim velho ?? Procure em suas apostilas de matemática ae ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poize, se as pessoas que postassem suas dúvidas colocam o problema realmente como ele é nao precisaria ver comentarios como os seus Groove..

 

 

Eu aconselho o uso de alocação dinâmica de memória pra resolve isso..

 

 

Att

Compartilhar este post


Link para o post
Compartilhar em outros sites

ueh, mas ele colocou o problema como realmente é, pra fazer multiplicação de matrizes tem q obedecer uma lógica lá...não sei o que é alocação dinâmica de memória...mas consegui resolver sem isso "/

 

veja meu tópico lá :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz o seguinte código:

 

 

#include<stdio.h>

int main(void)
{
	int l1,l2,c1,c2;
	int i,j,k,l,m;
	int m3[i][j];

	printf("Digite o número de linhas da primeira matriz");
	scanf("%d",&l1);
	printf("Digite o número de colunas da primeira matriz");
	scanf("%d",&c1);
	  int m1[l1][c1];

	printf("Digite o número de linhas da segunda matriz");
	scanf("%d",&l2);
	printf("Digite o número de colunas da segunda matriz");
	scanf("%d",&c2);
	  int m2[l2][c2];

	for(i=0; i<l1; i++)
	 {
	  for(j=0; j<c1; j++)
	   {
		 printf("Digite um valor");
		 scanf("%d",&m1[i][j]);
	   }
	  }

	 for(i=0; i<l2; i++)
	   {
		 for(j=0; j<c2; j++)
		  {
			printf("Digite um valor");
			scanf("%d",&m2[i][j]);
		   }
		}
	 if(c1!=l2)
	  {
		 printf("Não é possivel realizar a multiplicação");
		 }
	 else
	 {
		 for(i=0; i<l1; i++)
		  {
			for(j=0; j<c2; j++)
			 {
			   m3[i][j]=0;
			 for(k=0; k<c1; k++)
			   {
				 m3[i][j]+= m1[i][k]*m2[k][i];
			   }
			  }
			 }
			}
	  printf("\nA multiplicação é:\n%d",m3[i][j]);
	  return(0);
}

 

So que ta dando falha de segmentação

Compartilhar este post


Link para o post
Compartilhar em outros sites

m3[i][j]+= m1[i][k]*m2[k][i];

não seria aqui o erro ??

na multiplicação ali, o correto é m2[k][j]

 

O que é erro de segmentação ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

m3[i][j]+= m1[i][k]*m2[k][i];

não seria aqui o erro ??

na multiplicação ali, o correto é m2[k][j]

 

O que é erro de segmentação ?

 

Agora esta mostrando a seguinte mensagem:

 

"Erro de sintaxe proximoa simbolo inesperado ;"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acontece quando você lê pedaco de memoria nao permitido.

 

Agora esta mostrando a seguinte mensagem:

 

"Erro de sintaxe proximoa simbolo inesperado ;"

 

Vai na linha onde ta o erro e arruma,oras...Erro de sintaxe eh erro de digitacao (coisa fora da gramatica da linguagem)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acontece quando você lê pedaco de memoria nao permitido.

 

Agora esta mostrando a seguinte mensagem:

 

"Erro de sintaxe proximoa simbolo inesperado ;"

Vai na linha onde ta o erro e arruma,oras...Erro de sintaxe eh erro de digitacao (coisa fora da gramatica da linguagem)

 

 

Arrumei, mais continua dando falha de segmentação (core dumped)

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.