Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Como achar a maior e a menor idade de uma pessoa

Olá pessoa, alguém consegue resolver essa problemática? fazer um programa em JAVA que leia o nome e a idade de 3 pessoas e mostre o nome da pessoa mais velha e o nome da pessoa mais nova.

5 respostas
import java.util.Scanner;
public class idades {
    public static void main(String[] args) {
        // Variaveis
        String[] nomes = new String[3];
        int[] idades = new int[3];
        int idadeMaisNova = 99;
        String nomeDaPessoaMaisNova = "";
        int idadeMaisVelha = 0;
        String nomeDaPessoaMaisVelha = "";

        Scanner scan = new Scanner(System.in);
        // Entrada dos dados
        for (int i = 0; i < 3; i++) {
            System.out.println("Digite o nome: ");
            nomes[i] = scan.next();
            System.out.println("Digite a idade:");
            idades[i] = scan.nextInt();
        }
        // Extraindo os idades e nomes do maior e menor idade
        for (int i = 0; i < 3; i++) {
            if (idades[i] < idadeMaisNova) {
                idadeMaisNova = idades[i];
                nomeDaPessoaMaisNova = nomes[i];
            }
            if (idades[i] > idadeMaisVelha) {
                idadeMaisVelha = idades[i];
                nomeDaPessoaMaisVelha = nomes[i];
            }
        }
        // Exibindo os resultados
        System.out.println("Pessoa Mais nova Nome: " + nomeDaPessoaMaisNova);
        System.out.println("Pessoa Mais nova Idade: " + idadeMaisNova);
        System.out.println("Pessoa Mais velha Nome : " + nomeDaPessoaMaisVelha);
        System.out.println("Pessoa Mais velha Idade: " + idadeMaisVelha);
    }
}

Consegui resolver, mas o código ficou um pouco longo. Segue:

import java.util.Scanner;

public class alura {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        System.out.println("Digite o nome da primeira pessoa: ");
        String nome1 = sc.next();
        System.out.println("Digite a idade da primeira pessoa: ");
        int idade1 = sc.nextInt();

        System.out.println("Digite o nome da segunda pessoa: ");
        String nome2 = sc.next();
        System.out.println("Digite a idade da segunda pessoa: ");
        int idade2 = sc.nextInt();

        System.out.println("Digite o nome da terceira pessoa: ");
        String nome3 = sc.next();
        System.out.println("Digite a idade da terceira pessoa: ");
        int idade3 = sc.nextInt();

        if (idade1 < idade2 && idade1 < idade3) {
            System.out.println("A pessoa mais nova é:" + nome1);
            System.out.println("Com idade de: " + idade1);
        }

        else if (idade2 < idade1 && idade2 < idade3) {
            System.out.println("A pessoa mais nova é:" + nome2);
            System.out.println("Com idade de: " + idade2);

        }

        else if (idade3 < idade1 && idade3 < idade2) {
            System.out.println("A pessoa mais nova é:" + nome3);
            System.out.println("Com idade de: " + idade3);
        }

        if (idade1 > idade2 && idade1 > idade3) {
            System.out.println("A pessoa mais velha é: " + nome1);
            System.out.println("Com idade de: " + idade1);
        }

        else if (idade2 > idade1 && idade2 > idade3) {
            System.out.println("A pessoa mais velha é: " + nome2);
            System.out.println("Com idade de: " + idade2);

        }

        else if (idade3 > idade1 && idade3 > idade2) {
            System.out.println("A pessoa mais velha é: " + nome3);
            System.out.println("Com idade de: " + idade3);

        }

    }

}

Abraços

A varias maneira de se resolver este problema, mas o melhor é sempre o código o mais enxuto possível. O meu código por exemplo com certeza poderia ser menor ,mas com os conhecimentos que eu tenho no momento foi o que eu consegui. Vamos continuar estudando e praticando ate chegarmos na excelência.

solução!

Eu teria colocado o nome e idade num objeto da classe Pessoa que implementa Comparable

o motivo é para manter a facilidade de manter o código ou mesmo adequar se você decidir aumentar o tamanho da lista

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Pessoa implements Comparable<Pessoa> {
    private String nome;
    private Integer idade;

    public Pessoa(String nome, Integer idade) {
        this.nome = nome;
        this.idade = idade;
    }

    public Integer getIdade() {
        return this.idade;
    }

    public String getNome() {
        return this.nome;
    }
    @Override
    public String toString() {
        return this.nome;
    }

    @Override
    public int compareTo(Pessoa o) {
        return this.getIdade() - o.getIdade();
    }
public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        List<Pessoa> lista = new ArrayList<>();

         for (int i = 0; i < 3; i++) {
             System.out.println("Digite o nome da primeira pessoa: ");
             String nome1 = scanner.next();
             System.out.println("Digite a idade da primeira pessoa: ");
             Integer idade1 = Integer.parseInt(scanner.next());
             lista.add(new Pessoa(nome1, idade1));
         }
         lista.sort(null);


         System.out.println("Pessoa Mais nova Nome: " + lista.get(0));
         System.out.println("Pessoa Mais nova Idade: " + lista.get(0).getIdade());
         System.out.println("Pessoa Mais velha Nome: " + lista.get(2));
         System.out.println("Pessoa Mais velha Idade: " + lista.get(2).getIdade());

    }

Show de bola a maneira que você resolveu Gustavo, muito obrigado a todos.