O programa tem como objetivo coletar o nome e idade de 10 pessoas e salvar as informações em suas respectivas arrays. Quando a repetição é executada a primeira vez, a informação para guardar o nome da pessoa( name[i-1] = leitor.nextline(); ) é ignorada, conforme a imagem, e o programa continua todas as repetições dessa forma. Não consegui encontrar o erro, se puderem me ajudar, fico grato.
Código:
import java.util.Arrays;
import java.util.Scanner;
public class MaxMin {
public static void main(String[] args) {
Scanner leitor = new Scanner(System.in);
int[] A = new int[10];
int[] B = new int[10];
String[] name = new String[10];
for (int i = 1; i<=10;i++) {
System.out.println("Digite o nome da pessoa "+i+".");
name[i-1] = leitor.nextLine();
System.out.println("Digite a idade da pessoa "+i+".");
A[i-1] = leitor.nextInt();
B[i-1] = A[i-1];
}
Arrays.sort(B);
System.out.println("Maior valor "+B[9]);
System.out.println("Menor valor "+B[0]);
float X = 0.f;
for (int Z = 0; Z<10; Z++) {
X += B[Z];
}
System.out.println("Valor médio "+(X/10));
}
}
Quando você utilizar um objeto Scanner para ler entrada de dados pelo teclado você só deve utilizar o método nextLine().
Troque as chamadas de qualquer método objetoScanner.nextTipoDeDado()
por TipoDeDado.parseTipoDeDado(objetoScanner.nextLine())
import java.util.Arrays;
import java.util.Scanner;
public class MaxMin {
public static void main(String[] args) {
Scanner leitor = new Scanner(System.in);
int[] a = new int[10]; //variável deve, por convenção, ser escrito com letras minúsculas
int[] b = new int[10]; //variável deve, por convenção, ser escrito com letras minúsculas
String[] name = new String[10];
System.out.println("Informe os dados da pessoa.\n");
for(int i = 1; i <= 10; i++){//Use identação para melhorar a legibilidade do código
System.out.print(i + "ª pessoa\nNome:");
name[i - 1] = leitor.nextLine();
//Use espaços para melhorar a legibilidade - BP 2.2
System.out.print("Idade: ");
a[i - 1] = leitor.nextInt();
b[i - 1] = a[i - 1];
System.out.println("\n");
//'Limpa' o scanner
leitor.nextLine();
}
Arrays.sort(b);
System.out.println("Maior valor " + b[9]);
System.out.println("Menor valor " + b[0]);
float x = 0;
for (int z = 0; z < 10; z++) {
x += b[z];
}
System.out.println("Valor médio " + (x / 10));
}
}