Primeiro, esse vetor
não está sendo usado para nada, então eu removi
Outro ponto é que você pode usar a classe java.util.Random
para gerar números aleatórios, pois ela tem o método nextInt
que já retorna um inteiro no intervalo desejado:
int mat[][] = new int[10][10];
Random rand = new Random();
for (int i = 0; i < mat.length; i++) {
for (int j = 0; j < mat[i].length; j++) {
mat[i][j] = rand.nextInt(10); // gera um número inteiro entre 0 e 9
System.out.print(mat[i][j] + " ");
}
System.out.println();
}
Enfim, para fazer as somas, basta percorrer a matriz e … ir somando
Lembrando que a “matriz” na verdade é um array de arrays (um array no qual cada elemento é outro array). E arrays são indexados em zero (a primeira posição é zero, a segunda é 1, etc). Isso já foi bem explicado acima.
Sendo assim, usando os mesmos for
's acima, a primeira linha é quando i
é igual a zero, e a última é quando i
é igual ao tamanho da matriz menos 1. O mesmo vale para a primeira e última coluna.
Já a diagonal principal é quando i
e j
são iguais, e a diagonal secundária é quando i
é igual ao tamanho da matriz, menos j
, menos 1.
Ou seja, para calcular as somas, ficaria assim:
int primeiraLinha = 0, ultimaLinha = 0, primeiraColuna = 0, ultimaColuna = 0, diagonalPrincipal = 0, diagonalSecundaria = 0;
for (int i = 0; i < mat.length; i++) {
for (int j = 0; j < mat[i].length; j++) {
int valor = mat[i][j];
if (i == 0) {
primeiraLinha += valor;
} else if (i == mat.length - 1) {
ultimaLinha += valor;
}
if (j == 0) {
primeiraColuna += valor;
} else if (j == mat[i].length - 1) {
ultimaColuna += valor;
}
if (i == j) {
diagonalPrincipal += valor;
}
if (i == mat.length - j - 1) {
diagonalSecundaria += valor;
}
}
}
System.out.printf("Somas:\nprimeira linha=%d\núltima linha=%d\nprimeira coluna=%d\núltima coluna=%d\ndiagonal principal=%d\ndiagonal secundária=%d\n",
primeiraLinha, ultimaLinha, primeiraColuna, ultimaColuna, diagonalPrincipal, diagonalSecundaria);
Claro que daria para fazer um loop para cada soma, mas isso seria redundante - se dá pra fazer tudo de uma vez, pra que percorrer a matriz várias vezes?