Multiplicar matrizes [RESOLVIDO]

7 respostas
Rooney

Pessoal tentei fazer multiplicar a matriz, mas ainda tem um problema na multiplicação de alguem puder dá um toque ficarei grato.

vlw :D

public class MatrizMultiplicacao{

	public static void main (String args[]){

		Scanner t = new Scanner (System.in);
		int a[][]; a = new int[2][2];
		int b[][]; b = new int[2][2];
		int c[][]; c = new int[2][2];

		for (int i= 0; i < 2; i++){
				System.out.println();
			for (int j= 0; j <2; j++){
				System.out.print ("Digite o elemento "+i+ " " +j+" da matriz a: ");
					a[i][j] = t.nextInt();
			}
		}

		for (int i= 0; i <2; i++){
				System.out.println();
			for (int j= 0; j <2; j++){
				System.out.print ("Digite o elemento "+i+ " " +j+ " da matriz b: ");
					b[i][j] = t.nextInt();		
			}
		}
		for (int i=0; i < a[i][i]; i++){
				System.out.println();
			for (int j= 0; j < b[j][j]; j++){
				
				for (int x= 0; x < a[j][j]; x++){
					c[i][j] += a[i][x] * b[x][j];
						System.out.print(c[i][j]);
						System.out.print(" ");

}

			}
		}
		
		System.out.println();	
		System.out.println();	
	}
}

7 Respostas

WendersonLP

Olha só, nos dois loops (for) você está dizendo que o loop irá terminar quando (i < a[i][j]) e (j < b[i][j])
isso não está correto. Você está utilizando três for onde no seu caso não é necessária, basta somente dois
da mesma maneira que os indices (i, j) são atribuidos as variáveis (a e b) você fará com a variável ©.

for (int i = 0; i < a.length; i++) {
   for (int j = 0; j < a.length; j++) {
      c[i][j] = a[i][j] * b[i][j];
   }
}

Bem porque eu somente utilizei a variável a e b?
Porque quando faz-se a multiplicação de duas matrizes elas precisam ser do mesmo tamanho,
não necessariamente. Mas quando você quer multiplicar duas matrizes e não é necessário que elas sejam
do mesmo tamanho, aí coloca-se um limite de cada variável em cada for.

Rooney

mas tipo a multiplicação num ocorre dessa maneira com matrizes.

a multiplicação tem q ser linha por colunas

WendersonLP

Bem se é esse o caso, então é só você mudar os indices.

rael_gc

Se não quiser perder tempo com isso, usa a biblioteca JScience (procure no Google). Tem todas operações com Matrizes lá.

romarcio
for (int i = 0; i < a.length; i++) {
            System.out.println("");
            for (int j = 0; j < b.length; j++) {
                for (int x = 0; x < a[i][j]; x++) {
                    c[i][j] = a[i][x] * b[x][j];
                    System.out.print(c[i][j]);
                    System.out.print(" ");
                }
            }
            break;
        }

        System.out.println();
        System.out.println();
pablosaraiva

Nesse post eu publiquei código para várias operações com Matrizes, inclusive multiplicação.

http://www.guj.com.br/posts/list/144707.java

Rooney

Vlw mano tentei com o vc mostrou mas queria mesmo era fazer da forma q eu estava pensando e consegui.

Se alguem quiser tentar ta aki:

http://www.forumpcs.com.br/viewtopic.php?t=42091

Criado 21 de dezembro de 2009
Ultima resposta 22 de dez. de 2009
Respostas 7
Participantes 5