Encontrar 2 valores maiores

3 respostas
jsnpereira

Estava tentando a programar e não encontre 2 valores maiores, foram erro calculos…

só leia 10 inteiros com variavel contador até 10… se encontrar os dois maiores…

esse exercícios no livro “Java - como programar 8edição pag 116 cap 4.23”

import java.util.Scanner;


public class Pag116Cap423 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
Scanner sca = new Scanner(System.in);
		
		int counter = 1;
		int number = 0;
		int largest = 0;
		int largest1 = 0;
	
		while(counter <=10){
			System.out.println("Inserir quantidade vendido?");
			number = sca.nextInt();
			
			if(number > largest){
				
				largest = number;
				
			}
			if(largest1 < largest){
				
				largest1 = number;
			}
			
			counter++;
		}
		
		System.out.println();
		System.out.println("O numero maior é "+largest+" o segundo maior é "+largest1);

	}
}

pois sou iniciante da java.

espero que me ajudem… obrigado

3 Respostas

gpd38
package numero_Maior;

import java.util.Scanner;

/**
 *
 * @author Owner
 */
class Pag116Cap423 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        Scanner sca = new Scanner(System.in);

        int counter = 1;
        int number = 0;
        int largest = 0;
        int largest1 = 0;

        while (counter <= 10) {
            System.out.println("Inserir quantidade vendido?");
            number = sca.nextInt();

            if (number > largest) {

                largest1 = largest;
                largest = number;

            }

            counter++;
        }

        System.out.println();
        System.out.println("O numero maior é " + largest + " o segundo maior é " + largest1);

    }
}
D

Seu algoritmo ficou bom, porém apresenta falha ao inverter a ordem, sua parte da solução deu uma luz a minha solução específica:

public void localizarDoisNumerosMaiores() {
	Scanner input = new Scanner(System.in);
	
	int counter = 1;
	int largest1 = 0;
	int largest2 = 0;
	
	while(counter <= 10) {
		System.out.printf("Digite o %do valor: ", counter);
		number = input.nextInt();

		if(number > largest1) {
			largest2 = largest1;
			largest1 = number;
		}
		
		else if(number > largest2 && largest2 != largest1) {
			largest2 = number;
		}
			
		counter++;
	}
	
	System.out.printf("\nO primeiro maior: %d\nO segundo maior: %d\n", largest1, largest2);
}

Agora sim! pode digitar em qlqr ordem que achará o 1o maior e o 2o maior.

cerraosso

Cara fiquei minutos tentando entender a logica do Dan_daniel, e nao consegui entender, eu sei que esta funcionando, sou iniciante em java faz 1 semana, talvez seja por isso, poderia comentar sua logica cada linha por favor??
obrigado.

Criado 13 de julho de 2010
Ultima resposta 29 de ago. de 2013
Respostas 3
Participantes 4