Media, maior e menor

8 respostas
Roberto_Maciel1

Como eu faço a media, a maior e a menor temperatura desse array?

8 Respostas

luksss2013
int menorTemperatura = temperaturas[0];

int maiorTemperatura = temperaturas[0];

int media = 0;
for(int i = 0; i < temperaturas.length; i++){
    if ( temperaturas[i] < menorTemperatura ){
    	menorTemperatura = temperaturas[i];
    }
    if( temperaturas[i] > maiorTemperatura ) {
    	maiorTemperatura = temperaturas[i];
    }
    media += temperaturas[i];
}
media = media / temperaturas.length;

Básicamente o algoritmo analisa se o proximo valor é maior que o anterior ou menor, caso cumpram com a condição substitui, e a media é a soma de todos os valores do array dividido por seu tamanho

Roberto_Maciel1

nao entendi como isso fica no código, a lógica eu entendi

Roberto_Maciel1


eu tenho q ter um método pra cada

luksss2013
public double media(Temperatura[] temps) {
	double media = 0;
	
	for(int i = 0; i < temps.length; i++){
	    media += temps[i];
	}
	
	media = media / temps.length;
	
	return media;
}

public double maior(Temperatura[] temps) {
	double maiorTemperatura = temps[0];

	for(int i = 0; i < temps.length; i++){
	    if( temps[i] > maiorTemperatura ) {
	    	maiorTemperatura = temps[i];
	    }
	}
	
	return maiorTemperatura;
}

public double menor(Temperatura[] temps) {
	double menorTemperatura = temps[0];

	for(int i = 0; i < temps.length; i++){
	    if ( temps[i] < menorTemperatura ){
	    	menorTemperatura = temps[i];
	    }
	}
	
	return menorTemperatura;
}
luksss2013

Existem algumas formas de otimizar este código, para que não percorra o array cada vez que o método é executado, mas para proposito de aprendizagem, o código acima é suficiente.

Roberto_Maciel1

da erro mano, pq tempertura nao é double temperatura é do tipo temperatura que vem da classe termometro

error: incompatible types: Temperatura cannot be converted to double

error: bad operand types for binary operator ‘>’

luksss2013

Só trocar os temps[i] por temps[i].getValor()

Roberto_Maciel1

aeee obrigado mano, funciono perfeito :slight_smile:

Criado 16 de maio de 2018
Ultima resposta 16 de mai. de 2018
Respostas 8
Participantes 2