Faça um programa que preencha uma matriz 2 x 2, calcule e mostre uma matriz resultante que será a matriz digitada multiplicada pelo maior elemento da mesma

import java.util.Scanner;
public class Jose01 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int mat1 [][] = new int [2][2];
int matresult [][] = new int [2][2];
int maior = 0;

     for(int i=0; i<mat1.length; i++){
         for(int j=0; j<mat1[i].length; j++){
             System.out.println("Digte o valor na linha " +(i+1)+ " na coluna " +(j+1));
             mat1 [i][j] = scan.nextInt();
             
             if(j==0 || mat1[i][j]>maior){
                 maior = mat1[i][j];
                 
             }
         }
         
         
     }
     
      for(int i=0; i<mat1.length; i++){
         for(int j=0; j<mat1[i].length; j++){
             matresult[i][j] = mat1[i][j] * maior;
             
      }        
   }           
   
      System.out.println("O maior Valor é: " +maior);
      
     
     for(int i=0; i<4; i++){
         for(int j=0; j<10; j++){
             System.out.println("O valor da matriz 1 é: " +mat1[i][j]);
             System.out.println("O valor da matriz resultante é: " +matresult[i][j]);
  }
}  

}
}

// Ta dando erro :frowning:

A matriz tem duas linhas e duas colunas, total 4 indexações.
O segundo for tem 10 indexações, portanto extrapola as dimensões da matriz.
O erro recebido é de ArrayIndexOutOfBoundsException.

Fiz pequenas alterações e rodou como esperado.

public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int mat1[][] = new int[2][2];
        int matresult[][] = new int[2][2];
        int maior = Integer.MIN_VALUE;// <<

        for (int i = 0; i < mat1.length; i++) {
            for (int j = 0; j < mat1[i].length; j++) {
                System.out.println("Digte o valor na linha " + (i + 1) + " na coluna " + (j + 1));
                mat1[i][j] = scan.nextInt();

                if (mat1[i][j] > maior) {// <<
                    maior = mat1[i][j];
                }
            }

        }

        for (int i = 0; i < mat1.length; i++) {
            for (int j = 0; j < mat1[i].length; j++) {
                matresult[i][j] = mat1[i][j] * maior;
            }
        }

        System.out.println("O maior Valor é: " + maior);

        for (int i = 0; i < mat1.length; i++) {// <<
            for (int j = 0; j < mat1[0].length; j++) {// <<
                System.out.println("O valor da matriz 1 é: " + mat1[i][j]);
                System.out.println("O valor da matriz resultante é: " + matresult[i][j]);
            }
        }
        System.out.println(Arrays.deepToString(mat1));
        System.out.println(Arrays.deepToString(matresult));
    }

Muito obrigado pela ajuda, essa função array.deepToString serve para listar o meu array?

Serve para imprimir.

1 curtida