Como eu faço a media, a maior e a menor temperatura desse array?
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
nao entendi como isso fica no código, a lógica eu entendi
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;
}
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.
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 ‘>’
Só trocar os temps[i] por temps[i].getValor()
aeee obrigado mano, funciono perfeito