Lógica de Programação (com JAVA)

24/08/2019

11

Estou fazendo um exercício que pede o seguinte:

Leia um vetor de índice 5 (até ai ok!)
mas a cada valor digitado, tenho que verificar se o valor já foi digitado.

resumindo( vetor de números inteiros, porém não posso deixar números repetidos)
segue o código java:

package pf;

import java.util.Scanner;

public class Q0402 {
public static void main(String[] args) {
Scanner read = new Scanner(System.in);
int[] a = new int[5];

for (int i = 0; i < 5; i++) {
System.out.println("Informe o " + (i+1) + "° número: ");
a[i] = read.nextInt();

if(i>0){
int j=0;
while(a[i]==a[j]){

System.out.println("Número repetido");
System.out.println("Informe outro: ");
a[i] = read.nextInt();
j++;

}

}

}
}
}
Responder

Posts

26/08/2019

Alexandre Deus

Samuel, tudo bem?
Pensei no seguinte, após você receber um valor, percorrer o vetor novamente em busca do mesmo.

package pf;

import java.util.Scanner;

public class Q0402 {

Scanner read = new Scanner(System.in);
int[] a = new int[5];
int tmp = 0;

public Boolean existeValor(int valor, int i){
    for( j = 0; j < i, j++){
           if(a[j] == valor){
              return True;
            }
    }
     return False;
}

public static void main(String[] args) {

        for (int i = 0; i < 5; i++) {
              System.out.println("Informe o " + (i+1) + "° número: ");
              tmp = read.nextInt();

           if(i == 0){
               a[i] = tmp;
            } else{
              while(exiteValor(tmp, i){
                      System.out.println("Número repetido");
                      System.out.println("Informe outro: ");
                      tmp = read.nextInt();
             }
             a[i] = tmp;
          } 
    }
}


A cada valor a ser inserido no vetor, a função existeValor checará se o valor existe, recebendo como parâmetro o valor e o indice a ser inserido.
Veja se é isso que você precisa.
Um abraço!
Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira