Consigo tomar todos os valores, tanto das linhas quanto das colunas, porém preciso somar os valores de cada coluna. Tentei de varias formas e até agora não obtive sucesso.
da forma que vejo é fazendo dois fors, um dentro do outro.
Passa o que vc fez, q a gente ajuda no que ta errado…
posta o código que fica mais fácil de te ajudar :-o
Bem vindo ao GUJ, André
Segue umas dicas pra te ajudar a fazer o que quer.
1 - Itere pelas colunas
2 - A cada iteração de coluna, itere por todas as linhas, somando os valores, armazene o valor onde fizer sentido pra você
3 - Pronto
Se isso não resolver, poste aí o código que você já fez, e a gente vê onde pode te ajudar.
E antes de postar código, por favor leia o nosso How To.
Aí você encontra links para as regras do fórum, e diversas dicas sobre como postar
vote Rodrigo Sasaki para moderador, sempre ajudando os iniciantes a postar da maneira correta
Opa
Se os administradores/moderadores quiserem isso, eu topo!
[code]
package aula.pkg04.exercício.pkg04;
import javax.swing.*;
public class Aula04Exercício04 {
public static void main(String[] args) {
int mat[][] = new int[4][3];
int vet[] = new int[3];
System.out.println("Matriz");
for (int i = 0; i < 4; i++){
System.out.println(" ");
for (int j = 0; j < 3; j++){
String valor = JOptionPane.showInputDialog(null, "Informe o valor");
int v = Integer.parseInt(valor);
mat[i][j] = v;
System.out.print(v +" ");
}
}
int soma = 0;
for (int j = 0; j < 3; j++){
for (int i = 0; i < 4; i++){
soma = soma + mat[0][j]; //incompleto
}
}
System.out.println("soma> " +soma);
}
}
Pessoal, segue acima o meu código, porém como disse anteriormente, não estou conseguindo somar somente as colunas individualmente.
Faltou fechar a tag code no final
É a variável soma? se for ela, então tem coisas erradas no seu código.
você não tem que pegar o valor de mat[0][j], pois isso seria fixo, ignorando um dos loops, tem que pegar o valor de mat[i][j].
Agora lembre-se, você vai iterar uma coluna, somar os valores e atribuir à soma só que quando ele iterar a segunda coluna, você perderá o valor antigo.
[quote=andrewdd][code]
package aula.pkg04.exercício.pkg04;
import javax.swing.*;
public class Aula04Exercício04 {
public static void main(String[] args) {
int mat[][] = new int[4][3];
int vet[] = new int[3];
System.out.println("Matriz");
for (int i = 0; i < 4; i++){
System.out.println(" ");
for (int j = 0; j < 3; j++){
String valor = JOptionPane.showInputDialog(null, "Informe o valor");
int v = Integer.parseInt(valor);
mat[i][j] = v;
System.out.print(v +" ");
}
}
int soma = 0;
for (int j = 0; j < 3; j++){
for (int i = 0; i < 4; i++){
soma = soma + mat[0][j]; //[u]troca o 0 por i[/u]
}
}
System.out.println("soma> " +soma);
}
}
[/quote][/code] da uma olhada no ultimo comentário e vê se da certo.
import javax.swing.JOptionPane;
public class Teste {
public static void main(String[] args) {
int mat[][] = new int[4][3];
System.out.println("Matriz");
for (int i = 0; i < 4; i++) {
System.out.println(" ");
for (int j = 0; j < 3; j++) {
String valor = JOptionPane.showInputDialog(null, "Informe o valor");
int v = Integer.parseInt(valor);
mat[i][j] = v;
System.out.print(v + " ");
}
}
System.out.println(" ");
System.out.println(" ");
int soma;
for (int j = 0; j < 3; j++) {
soma = 0;
for (int i = 0; i < 4; i++) {
soma = soma + mat[i][j];
}
System.out.printf("Soma da coluna %d: %d\n", j, soma);
}
}
}
É isso, se eu fizer dentro do for, toda hora que o loop for executado, o valor irá mudar. Sobre os dois exemplos que me foram mandados, eles estão somando tudo, isso eu consegui fazer, o que eu não consigo é somar somente cada coluna indivualmente
Você pode fazer a soma ser um array também, com o mesmo tamanho do número de colunas da sua matriz.
Então se você tem 4 colunas, terá 4 totais. Fez sentido ?
O código que eu te mandei soma cada coluna individualmente e faz o print da soma (é só ver no console).
Caso você queira armazenar esse valor num vetor (tipo o que você crio), é só mudar:
import javax.swing.JOptionPane;
public class Aula04Exercício04 {
public static void main(String[] args) {
int mat[][] = new int[4][3];
int vet[] = new int[3];
System.out.println("Matriz");
for (int i = 0; i < 4; i++) {
System.out.println(" ");
for (int j = 0; j < 3; j++) {
String valor = JOptionPane.showInputDialog(null, "Informe o valor");
int v = Integer.parseInt(valor);
mat[i][j] = v;
System.out.print(v + " ");
}
}
System.out.println(" ");
System.out.println(" ");
int soma;
// Loop para percorrer as colunas
for (int j = 0; j < 3; j++) {
soma = 0;
// Loop para percorrer as linhas
for (int i = 0; i < 4; i++) {
soma = soma + mat[i][j];
}
// Print da soma de cada coluna
System.out.printf("Soma da coluna %d: %d\n", j, soma);
// Armazenamento da soma
vet[j] = soma;
}
}
}
Rpz, com esse ultimo código que foi mandado, ele soma a primeira coluna e mostra o resultado, quando ele vai somar a segunda coluna, ao invés de somar somente ela, o algoritmo esta somando a coloca atual com a anterior.
Pessoal, segue o código abaixo de como eu realmente queria que ele executasse, seguindo a problematização.
package aula.pkg04.exercício.pkg04;
import javax.swing.*;
public class Aula04Exercício04 {
public static void main(String[] args) {
int mat[][] = new int[4][3];
System.out.println("Matriz");
for (int i = 0; i < 4; i++) {
System.out.println(" ");
for (int j = 0; j < 3; j++) {
String valor = JOptionPane.showInputDialog(null, "Informe o valor");
int v = Integer.parseInt(valor);
mat[i][j] = v;
System.out.print(v + " ");
}
}
int soma[] = new int[3];
for (int x = 0; x < 3; x++) {
soma[x] = 0;
}
for (int j = 0; j < 3; j++) {
for (int i = 0; i < 4; i++) {
soma[j] = soma[j] + mat[i][j];
}
JOptionPane.showMessageDialog(null, "A soma da coluna " + (j + 1) +" é " + soma[j]);
}
}
}