Matriz n+1×m+1, soma de colunas e soma de linhas

Olá pessoal, eu preciso fazer um programa que leia uma matriz n × m de reais e imprima uma matriz n + 1 × m + 1 formada por todos os elementos lidos e, adicionalmente, a última linha contém as somas de cada coluna e a última coluna contém as somas de cada linha.

Já fiz de várias formas e nunca dá certo! O último que fiz está assim:

[code] Scanner sc = new Scanner(System.in);

    int l, c;
    System.out.println("Forneça o número de linhas da matriz");
    l = sc.nextInt();
    System.out.println("Forneça o número de colunas da matriz");
    c = sc.nextInt();

    double A[][] = new double[l][c], B[][] = new double[l + 1][c + 1];

    for (int i = 0; i < l; i++) {
        for (int j = 0; j < c; j++) {
            System.out.println("Forneça o valor de um elemento da matriz");
            A[i][j] = sc.nextDouble();
            B[i][j] = A[i][j];
        }
    }
    double somaj = 0;
    double somai = 0;
    for (int i = 0; i < l; i++) {
        for (int j = 0; j < c; j++) {

            somaj = somaj + A[i][j];
        }
    }
    for (int i=0; i<(c+1);i++) {
        B[l+1][i] = somai;
    }

    for (int i = 0; i < c; i++) {
        for (int j = 0; j < l; j++) {
            somai = somai + A[i][j];                
        }
    }
    for (int i=0; i<(l+1);i++) {
        B[i][c+1] = somai;
    }

    imprime(B, "matriz B= ");
}

public static void imprime(double[][] X, String n) {
    System.out.println(n);
    for (int i = 0; i < X.length; i++) {
        System.out.print(" | ");
        for (int j = 0; j < X[i].length; j++) {
            System.out.printf("%9.2f ", X[i][j]);
        }
        System.out.println("  |");
    }
}

}
[/code]

Alguém poderia me instruir no que posso fazer?

Ola Isabela.Thobias, qual seria o problema que você está encontrando?

Troque essa linha

double A[][] = new double[l][c], B[][] = new double[l + 1][c + 1];

por

double A[][] = new double[l][c];
double B[][] = new double[l+1][c+1];

Talvez isso ja lhe de uma ajudada.

eu alterei e o problema persiste… parece que estão nessas linhas

[code]double somaj = 0;
double somai = 0;
for (int i = 0; i < l; i++) {
for (int j = 0; j < c; j++) {

            somaj = somaj + A[i][j];
        }
    }
    for (int i=0; i<(c+1);i++) {
        B[l+1][i] = somai;
    }

    for (int i = 0; i < c; i++) {
        for (int j = 0; j < l; j++) {
            somai = somai + A[i][j];                
        }
    }
    for (int i=0; i<(l+1);i++) {
        B[i][c+1] = somai;
    }[/code]

[quote=Isabela.Thobias]eu alterei e o problema persiste… parece que estão nessas linhas

[code]double somaj = 0;
double somai = 0;
for (int i = 0; i < l; i++) {
for (int j = 0; j < c; j++) {

            somaj = somaj + A[i][j];
        }
    }
    for (int i=0; i<(c+1);i++) {
        B[l+1][i] = somai;
    }

    for (int i = 0; i < c; i++) {
        for (int j = 0; j < l; j++) {
            somai = somai + A[i][j];                
        }
    }
    for (int i=0; i<(l+1);i++) {
        B[i][c+1] = somai;
    }[/code][/quote]

Ola,

Segue código para para o que deseja

import java.util.Scanner;

public class Tabela{
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int linhas, colunas = 0;
		double somaLinha = 0;
		double somaColuna = 0;
		
		// Insere tamanho da matriz
		System.out.printf("Digite o numero de linhas: ");
		linhas = sc.nextInt();
		System.out.printf("Digite o numero de colunas: ");
		colunas = sc.nextInt();
		
		double A[][] = new double[linhas][colunas]; // Matriz entrada
		double B[][] = new double[linhas+1][colunas+1]; // Matriz saida
		
		
		// preenche a matriz
		for (int i = 0; i < linhas ; i++) {
			for (int j = 0 ; j < colunas ; j++) {
				System.out.printf("Digite o valor para o elemento [%d][%d] da matriz: ", i+1, j+1);
				A[i][j] = sc.nextDouble();
				B[i][j] = A[i][j];
			}
		}
		
		
		// Imprime na tela informacao de inicio das somas das linhas
		System.out.printf("Iniciando soma das linhas...");
		// Execute a soma das linhas
		for (int i = 0; i < linhas ; i++) {

			// o for vai até o j <= colunas de maneira que quando j == colunas ( coluna das somas ) possamos salvar o valor da soma
			for (int j = 0 ; j <= colunas ; j++) {
				// verifica se é a última coluna ( coluna das somas )
				if (j == colunas) {
					B[i][j] = somaLinha;
					somaLinha = 0;
				} else {
					somaLinha += B[i][j];
				}
			}
		}
		System.out.printf("   PRONTO!!!\n");

		// Imprime na tela informacao de inicio das somas das colunas
		System.out.printf("Iniciando soma das colunas...");
		// Executa a soma das colunas
		for (int j = 0 ; j < colunas ; j++) {
			
			// o for vai até o i <= linhas de maneira que quando i == linhas (linha das somas) possamos salvar o valor da soma
			for (int i = 0 ; i <= linhas ; i++) {
				if (i == linhas) {
					B[i][j] = somaColuna;
					somaColuna = 0;
				} else {
					somaColuna += B[i][j];
				}
			}
		}
		System.out.printf("   PRONTO!!!\n");
		
		// imprime a matriz na tela
		for (int i = 0; i <= linhas ; i++) {
			for (int j = 0; j <= colunas ; j++) {
				System.out.printf("|%5.2f", B[i][j]);
			}
			System.out.printf("|\n");
		}
	}
}

Espero ter ajudado

schiefler mto obrigada!!