Aqui você criou uma matriz com zero linhas e zero colunas. Mas o enunciado já disse que é 3x3, então inicialize os tamanhos com os valores corretos:
int linhas = 3, colunas = 3;
int[][] mat = new int[linhas][colunas];
Depois você tem que fazer o loop para ler a matriz, algo assim:
Scanner sc = new Scanner(System.in);
for (int i = 0; i < linhas; i++) {
for (int j = 0; j < colunas; j++) {
System.out.printf("Digite o número da posição [%d, %d]:\n", i, j);
mat[i][j] = sc.nextInt();
}
}
Já para calcular as somas, você precisa de 3 somas para as linhas (afinal, são 3 linhas), e mais 3 somas para as colunas. Ou seja, são 2 arrays:
int[] somaLinhas = new int[linhas];
int[] somaColunas = new int[colunas];
Em somaLinhas[0]
ficará a soma da linha zero, em somaLinhas[1]
, a soma da linha 1, e assim por diante. O mesmo vale para as somas das colunas.
E podemos calcular essas somas no mesmo loop que lê os números. Depois é só imprimir os resultados:
int linhas = 3, colunas = 3; // tamanhos
int[][] mat = new int[linhas][colunas]; // matriz com os tamanhos corretos
// soma das linhas e colunas (já são inicializados com zeros)
int[] somaLinhas = new int[linhas];
int[] somaColunas = new int[colunas];
// lê a matriz e já vai atualizando as somas
Scanner sc = new Scanner(System.in);
for (int linha = 0; linha < linhas; linha++) {
for (int coluna = 0; coluna < colunas; coluna++) {
System.out.printf("Digite o número da posição [%d, %d]:\n", linha, coluna);
int valor = sc.nextInt();
// guarda o valor na matriz
mat[linha][coluna] = valor;
// atualiza a soma da linha e coluna
somaLinhas[linha] += valor;
somaColunas[coluna] += valor;
}
}
// imprimir a matriz
for (int[] linha : mat) {
for (int valor : linha) {
// imprime o número alinhado à direita, ocupando 3 espaços (para ficarem alinhados)
System.out.printf("%3d", valor);
}
System.out.println();
}
// imprimir as somas
for (int i = 0; i < linhas; i++) {
System.out.printf("Soma da linha %d = %d\n", i, somaLinhas[i]);
}
for (int i = 0; i < colunas; i++) {
System.out.printf("Soma da coluna %d = %d\n", i, somaColunas[i]);
}
Para imprimir a matriz usei o enhanced for, pois ali não me interessa os índices, somente os valores. Já para as somas, usei o for
“normal” para indicar o número da linha e coluna.