Multiplicação de Matrizes [RESOLVIDO]

Pessoal boa tarde,
Estou iniciando no Mundo java e gostaria de pedir a ajuda de vocês em um código simples para alguns (Veteranos) e complexo para outros (Iniciantes).

Estou tentando fazer programa em Java que faça a multiplicação do produto de matrizes A*A, com a ordem da matriz iniciando em n=2 e terminando em n=50.

Segue o código inicial e agradeço a atenção para o aluno iniciante, Abraço a todos.


// Ler duas matrizes A e B quadradas de ordem 3 e realizar o produto destas matrizes.
// O produto AB da matriz A pela matriz B, apenas esta definido se o numero de colunas
// de A for igual ao numero de linhas de B. Cada elemento de AB e definido atraves do
// somatorio do produto dos elementos da i-esima linha da matriz A com os respetivos
// elementos da j-esima coluna da matriz B.

import java.util.Scanner;

public class _MultiplicaçãoMatrizes {

  public static void main(String[] args) {
    Scanner ler = new Scanner(System.in);

    int n = 2; // ordem da matriz quadrada
    int i, j, k, sm;
    int a[][] = new int[50][50];
    int b[][] = new int[50][50];
    int ab[][] = new int[50][50];

// entrada de dados
    System.out.printf("1a. Matriz_________________________\n");
    for (i=0; i<n; i++) {
      System.out.printf("Informe os elementos da %da. linha:\n", (i+1));
      for (j=0; j<n; j++) {
        System.out.printf("a[%d][%d] = ", i, j);
        a[i][j] = ler.nextInt();
      }
      System.out.printf("\n");
    }

    System.out.printf("\n2a. Matriz_________________________\n");
    for (i=0; i<n; i++) {
      System.out.printf("Informe os elementos da %da. linha:\n", (i+1));
      for (j=0; j<n; j++) {
        System.out.printf("b[%d][%d] = ", i, j);
        b[i][j] = ler.nextInt();
      }
      System.out.printf("\n");
    }

// processamento: multiplicando as matrizes de entrada
    for (i=0; i<n; i++) {
      for (j=0; j<n; j++) {
        sm = 0;
        for (k=0; k<n; k++) {
          sm = sm + (a[i][k] * b[k][j]);
        }
        ab[i][j] = sm;
      }
    }

// saida
    System.out.printf("\n1a. Matriz________\n");
    for (i=0; i<n; i++) {
      System.out.printf("%da. linha: ", (i+1));
      for (j=0; j<n; j++) {
        System.out.printf("%d ", a[i][j]);
      }
      System.out.printf("\n");
    }

    System.out.printf("\n2a. Matriz________\n");
    for (i=0; i<n; i++) {
      System.out.printf("%da. linha: ", (i+1));
      for (j=0; j<n; j++) {
        System.out.printf("%d ", b[i][j]);
      }
      System.out.printf("\n");
    }

    System.out.printf("\nProduto___________\n");
    for (i=0; i<n; i++) {
      System.out.printf("%da. linha: ", (i+1));
      for (j=0; j<n; j++) {
        System.out.printf("%d ", ab[i][j]);
      }
      System.out.printf("\n");
    }
  }
}

qual a sua duvida? isso funciona?

Oi Nobre boa tarde!!!
Não funciona, está dando erro…esta é a dúvida, não consigo rodar uma matriz 50 Linhas e 50 colunas.

Ue eu testei aqui a multiplicação de 2 matrizes

1 2
3 4

por

9 9
9 9

deu certinho

qual é o galho?

Então, com matrizes 2 x 2 dá certo, porém maiores que está não roda, como n está definido para 2 “N=2” aí funciona direitinho, tenta fixar uma matriz com 50 colunas e 50 linhas, aí não processa.

cara eu coloquei n=3 e funcionou tambem.

entao quem sabe vc descreve o seu problema pq assim, vc ja disse 2 vezes que “não roda” e eu nao entendo o que isso significa. não roda de ficar lento? explode? ativa robos e começa a destruir a humanidade?

Estou testando com 50 novamente, para ver se consegue funcionar, quando digo não “RODA” é que não processa corretamente, estou tentando processar linha linha novamente e ver o que acontece,apaguei a classe e criei em outro pacote. Vamos ver de repente era alguma sujeira… Daqui a pouco te aviso aí. Obrigado pelas tentativas aí.

sujeira?

amigo nao faz sentido. se vc calcula certo 2x2 e 3x3 vai calcular certo 50x50.

Você está certo, funcionou perfeitamente agora aqui.
Obrigado pela atenção meu camarada.
Abraço.