Se a instrução System.out.print(f(v, 3, 2, d)); for alterada...
Comentários
Veja os comentários dos nossos alunos
Observe que a assinatura da função f(int[][] valores, int n, int m, int x) ocorre o seguinte:
- N: primeira dimensão, consistindo a todos os elementos existentes.
- M: segunda dimensão, correspondendo então a cada elemento (array) existente na matriz.
Note que cada elemento tem tamanho 3 e, em java, o índice de um array abrange um intervalo entre 0 e N-1. Com isso, o limite de cada elemento é 0 até 2. Ao passar 3 para a variável M, ocorrerá a exceção ArrayIndexOutOfBoundsException (exceção de array fora do índice).
Espero ter ajudado!
Bons estudos!
| 1 10 8 |
| 15 40 16 |
| 10 33 91 |
| 0 44 51 |
De 4 linhas e 3 colunas, O valores informados para n e m representam, respectivamente, a quantidade de linhas e colunas que serão percorridos dentro de dois loops for.Pegadinha baseada em código porco.
Se reparar bem o método f ao invés de receber a quantidade de linhas e colunas em n e m, recebe o maior índíce possível, que na maioria das linguagens, incluindo o Java, é n-1.
int[][] v = {{1, 10, 8}, {15, 40, 16}, {10, 33, 91}, {0, 44, 51}};
v, 3, 2, d - v tem 1 linha, 4 colunas e cada coluna de v tem 3 colunas;
v, 2, 3, d - v tem 1 linha, 3 colunas e cada coluna tem de v 4 colunas; (out of bounds) pois não existe a quarta coluna a tabela teria que ser assim: int[][] v = {{1, 10, 8, 9}, {15, 40, 16, 9}, {10, 33, 91, 9}};
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo