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