2
respostas

Multiplicação de Matrizes, dando exception

Boa noite. Podem me ajudar com esse código por favor, está dando uma exception quando vai gerar a matriz C.

package exerciciosFaculdade;

import java.util.Scanner;

public class exercicio20 {

    public static void main(String[] args) {

        /*
         * Faça um programa que leia duas matrizes de reais A e B, com respectivos
         * tamanhos 5 x 4 e 4 x 6, e imprima a matriz resultante A x B (multiplicação
         * das matrizes), de tamanho 5 x 6.
         */

        float a[][] = new float[5][4];
        float b[][] = new float[4][6];
        float c[][] = new float[5][6];
        Scanner tc = new Scanner(System.in);

        int i, j, k;

        // array A
        for (i = 0; i < 5; i++) {

            for (j = 0; j < 4; j++) {

                System.out.printf("Digite um número para a linha %d e coluna %d da matriz A", i, j);
                a[i][j] = tc.nextFloat();

            }
        }

        // array B
        for (i = 0; i < 4; i++) {

            for (j = 0; j < 6; j++) {

                System.out.printf("Digite um número para a linha %d e coluna %d da matriz B", i, j);
                b[i][j] = tc.nextFloat();

            }
        }


//array c
        float soma=0;
        float multi;

        for (i = 0; i < 5; i++) {
            for (j = 0; j < 6; j++) {
                 soma = 0;
                for (k = 0; k < 5; k++) {
                    multi = (a[i][k] * b[k][j]);
                    soma += multi;
                }
            }
        }

        // imprimir array c
        for (i = 0; i < 5; i++) {
            System.out.printf("\n");

            for (j = 0; j < 6; j++) {

                System.out.printf("\t%f", c[i][j]);

            }
        }

    }
}
2 respostas

Opa o erro da sua matriz pelo oque estou vendo está nessa linha.

  for (k = 0; k < 5; k++) {

nao testei seu codigo, mais pelo oque reparei, esse for vai dar erro de posicionamento. altere para

  for (k = 0; k < 4; k++) {

para testar

Oi, obrigado, deu quase certo.

Agora imprime a matriz c, no entanto, todos os vetores imprimem 0.00.