JAVA - problems

Galera, estou com um exercício da faculdade,

Crie um algoritmo que receba 20 valores que serão guardados em cada posição de um array de
inteiros.
• Utilize a classe Scanner pra coletar os números a serem percorridos pela sonda.
• Como os valores não podem ser repetidos, a cada inserção de valores, seu algoritmo deverá
verificar se a sonda já foi direcionada para aquela posição.
• Seu algoritmo deverá informar que aquela posição não poderá ser inserida, pois essa é uma
informação repetida

Poderiam me dar uma luz? como começar um estruturação.

Como vc tem que trabalhar com um array comum, vai precisa de uma variável extra para controlar quantos números já foram adicionados. Ficaria assim:

public static void main(String... args) {
  final int length = 20;

  final int[] positions = new int[length];

  int counter = 0;

  while (counter < length) {
    System.out.print("Digite uma posição: ");

    final int pos = scan.nextInt();

    if (isDuplicated(positions, counter, pos)) {
      System.out.print("Vc usou um número repetido! ");
    } else {
      positions[counter++] = pos;
    }
  }

  System.out.println(Arrays.toString(positions));
}

O método isDuplicated é que vai dizer se o número existe ou não, ele faz uma busca simples, veja:

private static boolean isDuplicated(final int[] positions, final int goal, final int pos) {
  for (int i = 0; i < goal; ++i)
    if (positions[i] == pos)
      return true;
  return false;
}
2 curtidas

Resolvido men, obgdd

1 curtida