Dúvida em Java quanto ao Array Duplo

4 respostas
Igor_Cordeiro

Calcule as Médias das Temperaturas de cada mês. Para isto, crie uma Lista contendo os nomes de cada mês nas Linhas, e da quantidade de dias de cada mês nas colunas. Em cada dia, armazene cada valor de Temperatura escrito pelo Usuário. Depois, faça a média das Temperaturas de cada mês.

Meu Algoritmo, que eu não sei mesmo como fazer, já que eu sou Iniciante em Java:

import java.util.Scanner;
public class MediaTemperaturas {
public static void main (String args[]) {
double mês = new double[12][31];
for (int i = 0; i<11; i++);
Scanner sc = new Scanner (System.in);
String nomesMeses = sc.nextLine();
for (int j = 0; j<30;j++);

Por gentileza, alguém pode me ajudar a fazer este exercício?

4 Respostas

Jonas_B_a_r_r_o_s

Deu para ve que você nem testou. Melhor você fazer e ir testando, e não coloque 12 e 31 no array. Pois nos testes você vai precisar preencher, a menos que você queria digitar 365 vezes em cada teste.

Igor_Cordeiro

Mas o 12 e o 31 no array não significa o número de valores que podem ser armazenados dentro do Array? Para não ficar muito grande esse teste, pode fazer com números menores, como por exemplo, 3 meses, sendo que cada mês contém 10 dias (aí nesse caso tem que escrever 30 valores (3 * 10), para se chegar ao resultado dos meses).

Pode fazer:

double mes = new double [3][10];
Pra calcular a média, faz um:
 int soma = 0;
 int media = 0;
 if (int i = 0; i < dias.length; i++) {


   soma += dias;
   media = soma/dias.length;
   return media;
}
  • E como fica para escrever o nome de cada mês na linha?
  • Como se faz para preencher os valores em cada coluna?
  • Como ficaria nesse caso? Por gentileza, podes me ajudar?
Eduardo_Maranata10

Fiz um exemplo aqui :

public class Teste {	

	public static void main(String[] args) {
		Mes[] mes = new Mes[12];
		
		
		for (int i = 0; i < mes.length; i++) {
			mes[i] = new Mes();
			mes[i].setDescricao(String.valueOf(i));
			for (int j = 0; j < 31; j++) {
				mes[i].adiciona(10);
			}
		}
		
		
		for (int i = 0; i < 12; i++) {
			System.out.println("Mes   : "+ mes[i].getDescricao());
			System.out.println("Media : "+ mes[i].tirarMediaDosDias());
		}
	}

}

Classe Mês :

public class Mes {
	private static final int LIMITE = 31;
	private double[] dias = new double[LIMITE];
	private String descricao;
	int cont = 0;

	public void adiciona(double dia) {
		if (cont < LIMITE) {
			this.dias[cont] = dia;
			this.cont++;
		} else {
			throw new RuntimeException("Excedeu o limite");
		}
	}

	public double[] getDias() {
		return dias;
	}

	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public double tirarMediaDosDias() {
		double soma = 0;
		for (int i = 0; i < dias.length; i++) {
			soma = + dias[i];
		}
				
		return soma;
	}
}
Igor_Cordeiro

Muito obrigado, Eduardo.
Esclarecendo que eu sou Iniciante em Java.

Criado 9 de julho de 2016
Ultima resposta 9 de jul. de 2016
Respostas 4
Participantes 3