Dúvida maior/menor[RESOLVIDO]

Como seria um código para imprimir um valor entre 3 ou mais inteiros, que fosse o maior deles?

Acho que a saída seria criar uma variável auxiliar para guardar o maior número e fazer as comparações em uma repetição.

[code]public class Testes {

public static int Maior(int a, int b){
    if(a>=b) return a;
    else return b;
}

public static void main(String[] args) {

    int[] valores = {0, 12, 5, -3, 10, 0};
    int maior = valores[0];
    for(int i = 0; i<valores.length; i++){
        maior = Maior(maior, valores[i]);
    }
    System.out.println(maior);
}

}[/code]

Resultado: 12.
É só colocar o valor da variável “maior” como o primeiro valor e ir comparando com todos os valores, e se for maior, muda o valor dela.
O importante é visualizar como acontece o processo. Esse é um passo de um algoritmo de ordenação bem ineficiente chamado BubbleSort.

Na verdade, as variáveis seriam captadas pelo Scanner, numa sequencia aleatória. É um exercicio do segundo capítulo do livro: JAVA COMO PROGRAMAR.
O exercicio pede a soma, produto, média, maior e menor. Só não estou conseguindo fazer para exibir MAIOR e MENOR.

Aguardo !!!

  1. Leia uma variável;
  2. Guarde ela em outra como o maior valor;
  3. Leia outra variável;
  4. Compare se ela é maior que o maior valor já lido. Se for, atribua ela ao maior valor;
  5. Repita o passo 3 até ler todas as variáveis solicitadas pelo problema.

De forma análoga você faz para o menor valor.

[quote=ViniGodoy]1. Leia uma variável;
2. Guarde ela em outra como o maior valor;
3. Leia outra variável;
4. Compare se ela é maior que o maior valor já lido. Se for, atribua ela ao maior valor;
5. Repita o passo 3 até ler todas as variáveis solicitadas pelo problema.

De forma análoga você faz para o menor valor.[/quote]

Como implemento isso no código abaixo?

[code]
import java.util.Scanner;
public class SomaMediaMaiorMenor {

public static void main(String[] args) {
	
	Scanner input = new Scanner(System.in);
	
	double num1;
	double num2;
	double num3;
	double soma;
	double media;
	double produto;
	boolean maior;
	boolean menor;
	
	System.out.println(" Digite o primeiro numero: ");
	num1 = input.nextDouble();
	
	System.out.println(" Digite o segundo numero: ");
	num2 = input.nextDouble();
	
	System.out.println(" Digite o terceiro numero: ");
	num3 = input.nextDouble();
	
	soma = num1 + num2 + num3;
	media = (num1 + num2 + num3)/3;
	produto = num1 * num2 * num3;
	
	if (num1 > num2)		
	System.out.println(num1);
	
	System.out.printf("%s\n%s\n%s\n",
			"SOMA: " + soma, "MEDIA: " + media, "PRODUTO: " + produto);
	
}

}[/code]

Aí está o comecinho. O resto vc mesmo descobre.

[code]
import java.util.Scanner;
public class SomaMediaMaiorMenor {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);

  System.out.println(" Digite o primeiro numero: ");
  double num1 = Double.parseDouble(input.nextLine());
  double maior = num1; //O maior até agora é o num1
	
  System.out.println(" Digite o segundo numero: ");
  double num2 = Double.parseDouble(input.nextLine());
  if (num2 > maior) {  //Verificamos se num2 maior do que o maior já lido
     maior = num2;    //Se for, então num2 passa a ser o maior já lido até agora.
  }		

  System.out.println(" Digite o terceiro numero: ");
  double num3 = Double.parseDouble(input.nextLine());
	
  double soma = num1 + num2 + num3;
  double media = soma /3;
  double produto = num1 * num2 * num3;
	
  System.out.printf("%s\n%s\n%s\n",
     "SOMA: " + soma, "MEDIA: " + media, "PRODUTO: " + produto);		

}
}[/code]

Incrível como a solução foi tão simples. Vou ter que me empenhar mais em lógica !!! :slight_smile: