JAVA - problems

2 respostas
java
L

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.

2 Respostas

W

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;
}
L

Resolvido men, obgdd

Criado 26 de abril de 2021
Ultima resposta 26 de abr. de 2021
Respostas 2
Participantes 2