Dúvida maior/menor[RESOLVIDO]

7 respostas
J_ALEX

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

7 Respostas

Eric_Yuzo

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.

Luv_sic
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);
    }
}

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.

J_ALEX

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 !!!

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.

J_ALEX
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.

Como implemento isso no código abaixo?

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);
		
	}
}
ViniGodoy

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

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);		
   }
}
J_ALEX

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

Criado 16 de setembro de 2010
Ultima resposta 17 de set. de 2010
Respostas 7
Participantes 4