Ajuda em matriz (resolvido)

Boa noite pessoal, estou fazendo uma programação, mas fiquei com uma dúvida, a questão é a seguinte: Uma empresa de saneamento básico deseja fazer o controle do gasto (litros) de água de uma residência qualquer no primeiro semestre durante dois anos. Cada semestre é composto de 6 valores que são equivalentes ao meses do ano (jan-jun). A empresa deseja saber qual a quantidade de litros gastos em cada semestre, total de litros nos mesmos meses de cada ano. Mostre os anos, meses e valores calculados.

Fiz o código da seguinte forma:

int[] a = new int[6], b = new int[6];
int ano1,ano2;
int sem1 = 0,sem2=0;
String sa= "", sb= "";
ano1 = Integer.parseInt(JOptionPane.showInputDialog("Informe o ano"));

for(int i=0;i<a.length;i++)
{

a[i] = Integer.parseInt(JOptionPane.showInputDialog("Informe o gasto do semestre"));
sem1+=+a[i];

sa = sa+a[i]+" , ";
}

ano2 = Integer.parseInt(JOptionPane.showInputDialog("Informe o ano 2"));

for(int i=0;i<b.length;i++)
{
b[i] = Integer.parseInt(JOptionPane.showInputDialog("Informe o gasto do semestre"));
sem2+=+b[i];

sb = sb+b[i]+" , ";
}

JOptionPane.showMessageDialog(null, "Ano "+ano1+"\n"+"gastos dos meses jan a jun: "+sa+"\n"+"Gasto do primeiro semestre deste ano = "+sem1);
JOptionPane.showMessageDialog(null, "Ano "+ano2+"\n"+"gastos dos meses jan a jun: "+sb+"\n"+"Gasto do primeiro semestre deste ano = "+sem2);
    }}

Gostaria de uma forma que mostrasse os meses separados com seus respectivos gastos. Alguem saberia como posso fazer isso?
Desde já agradeço

Exercício - para casa.
Vamos lá, considere que cada mês é uma “casa” no teu array.
Sendo assim:
1 - A empresa deseja saber qual a quantidade de litros gastos em cada semestre = você precisa de 1 array (vetor) para cada ano;
2 - total de litros nos mesmos meses de cada ano, quando finalizar a entrada de dados, você precisa pegar e somar as posições iguais, ou seja, toda posição 1, de cada array, será somada para totalizar os gastos acumulados de janeiro. Se quiser, crie outro vetor e coloque ali os valores somados, ordenando por mês;
3 - Mostre os anos, meses e valores calculados = a mais simples, cada vetor terá um nome, você poderá fazer uma verificação por nome ou colocar a indicação em uma “casa”, etc.

lety_cia, você já tem 2 arrays de 6 posições (jan…jun).

Em toda “rodada/volta” do loop você pede o seguinte: b[i] = Integer.parseInt(JOptionPane.showInputDialog("Informe o gasto do semestre"));
Acho que poderia fazer algo tipo:

for(int i=0; i < a.lenght; i++){ switch(i){ case 0: a[i] = Integer.parseInt(JOptionPane.showInputDialog("Valor de Janeiro: ")); break; case 1: a[i] = Integer.parseInt(JOptionPane.showInputDialog("Valor de Fevereiro: ")); break; case 2: a[i] = Integer.parseInt(JOptionPane.showInputDialog("Valor de Março: ")); break; case 3: a[i] = Integer.parseInt(JOptionPane.showInputDialog("Valor de Abril: ")); break; case 4: a[i] = Integer.parseInt(JOptionPane.showInputDialog("Valor de Maio: ")); break; case 5: a[i] = Integer.parseInt(JOptionPane.showInputDialog("Valor de Junho: ")); break; } }
Com isso você já teria os valores do semestre… E saberia qual posição da array se refere ao mês que deseja exibir… Se quisesse exibir só março dos dois anos era só exibir o índice 2 dos arrays, se quisesse todos só criar um laço, que poderia usar pra somar os meses também…

Pode fazer de várias formas, mas creio que assim seja simples de entender!

Entendi, mas o que eu gostaria é que não na pergunta mostrasse os meses, mas sim na hora de mostrar os valores, ex: jan:(total de litros), fev: (total de litros)… Da forma mais simplificava possivel.

até poderia fazer isso mas como vc saberia qto gastou em cada mês? tirando uma média? ou a pessoa informaria qto gastou mês a mês ou vc teria que tirar a média…

se for tirar a média dae é fácil demais…

só pegar o valor do semestre, dividir por 6, criar um array com 6 posições e cada posição preencher com um mês e depois fazer um for, imprimindo o nome do mês + a média calculada… entendeu?

Entendi sim, mas o problema não quer que mostre a média do semestre, somente o total e o gasto de todo mês mesmo.

Mais num vai mudar quase nada na hora de exibir… É só pegar o exemplo e mudar um pouquinho!

Mais tudo bem vamos lá :

[code]int[] semestre1 = new int[6], semestre2 = new int[6];
int totalSemestre1, totalSemestre2;

JOptionPane.showMessageDialog(null, “Digite os valores de ano 1!”);
for(int i = 0; i < 6; i++){
semestre1[i] = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor “+(i+1)+”: "));
totalSemestre1 = totalSemestre1 + semestre1[i];
}

JOptionPane.showMessageDialog(null, “Digite os valores de ano 2!”);
for(int i = 0; i < 6; i++){
semestre2[i] = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor “+(i+1)+”: "));
totalSemestre2 = totalSemestre2 + semestre2[i];
}

JOptionPane.showMessageDialog(null, "O total dos dois semestre é "+(totalSemestre1+totalSemestre2));
JOptionPane.showMessageDialog(null, "O total do primeiro semestre é "+totalSemestre1);
JOptionPane.showMessageDialog(null, "O total do segundo semestre é "+totalSemestre2);

JOptionPane.showMessageDialog(null, “Meses do primeiro semestre!”);
for(int i=0; i < 6; i++){
switch(i){
case 0: JOptionPane.showMessageDialog(null, "Valor de Janeiro: "+semestre1[i]));
break;
case 1: JOptionPane.showMessageDialog(null, "Valor de Fevereiro: "+semestre1[i]));
break;
case 2: JOptionPane.showMessageDialog(null, "Valor de Março: "+semestre1[i]));
break;
case 3: JOptionPane.showMessageDialog(null, "Valor de Abril: "+semestre1[i]));
break;
case 4: JOptionPane.showMessageDialog(null, "Valor de Maio: "+semestre1[i]));
break;
case 5: JOptionPane.showMessageDialog(null, "Valor de Junho: "+semestre1[i]));
break;
}
}

JOptionPane.showMessageDialog(null, “Meses do segundo semestre!”);
for(int i=0; i < 6; i++){
switch(i){
case 0: JOptionPane.showMessageDialog(null, "Valor de Janeiro: "+semestre2[i]));
break;
case 1: JOptionPane.showMessageDialog(null, "Valor de Fevereiro: "+semestre2[i]));
break;
case 2: JOptionPane.showMessageDialog(null, "Valor de Março: "+semestre2[i]));
break;
case 3: JOptionPane.showMessageDialog(null, "Valor de Abril: "+semestre2[i]));
break;
case 4: JOptionPane.showMessageDialog(null, "Valor de Maio: "+semestre2[i]));
break;
case 5: JOptionPane.showMessageDialog(null, "Valor de Junho: "+semestre2[i]));
break;
}
}
[/code]
Bom acho que já fiz sua lição de casa… xD E assim já está bemmm simples, mesmo que queira algo diferente serve como base, só alterar.
E sugiro que de uma olhada nas apostilas da Caelum , de uma olhada na FJ-11 aprenderá melhor usar laços e array!

Abraço!

Hum, ajudou sim e muito. Muito obrigada

De nada. Também estou aprendendo e fico feliz em poder ajudar!
Mas caso não tenha mais dúvidas relacionadas a esse exercício por favor edite seu primeiro post e coloque [RESOLVIDO] no título, pra deixar a bagaça mais organizada! :wink:

Abraço!