Java

7 respostas
Gabriel_Martins1

Min ajudem nessa questao. Crie um progama a solicite 10 numeros inteiros de um usuario sendo que esse numero nao possa se repetir.

7 Respostas

lvbarbosa

Qual a sua dificuldade?

Sabe criar uma classe? Sabe rodar um programa feito em Java? Sabe ler da input do usuário?

Gabriel_Martins1

Isso eu sei. Mais nao sei como fazer.
Pensei assim…
Oi

s[]=new Oi[10];
int c=0;
for(int i=0;i<10;i++){
 s[i]=new Oi();
 System.out.println("Codigo :");
 s[i].setCod(input.next());
 if(c!=0){
   for(int j=0;j<c;j++){
         if(s[i].getCod().equals(s[j].getCod())){
            System.out.println("Digite outro codigo");
            s[i].setCod(input.next());
            }
            
     }
   }
 }
  c++;
}

Mais isso não funciona porque quando eu digito algum código já usado diz q foi usado mais se eu colocar de novo ai ele ja aceita

Gabriel_Martins1

Eu até porque isso acontece mais nao sei resolver.

staroski

Você precisa verificar se já digitou o número informado.

import java.io.PrintStream;
import java.util.Scanner;

public class Exemplo {

    public static void main(String[] args) {
        Exemplo programa = new Exemplo();
        programa.executar();
    }

    private final Scanner entrada = new Scanner(System.in);
    private final PrintStream saida = System.out;

    public void executar() {
        int[] numeros = new int[10];
        int posicao = 0;
        while (!preencheu(numeros)) {
            saida.print("Digite um numero: ");
            int numero = Integer.parseInt(entrada.nextLine());
            if (numeroExiste(numero, numeros)) {
                saida.println("Numero repetido!");
            } else {
                numeros[posicao] = numero;
                posicao++;
            }
        }
        saida.print("numeros cadastrados:");
        for (int n : numeros) {
            saida.print(" " + n);
        }
    }

    // verifica se lá preencheu o array de números
    private boolean preencheu(int[] numeros) {
        for (int i = 0; i < numeros.length; i++) {
            if (numeros[i] == 0) {
                return false;
            }
        }
        return true;
    }

    // verifica se o número informado já existe no array de números
    private boolean numeroExiste(int numero, int[] numeros) {
        for (int i = 0; i < numeros.length; i++) {
            if (numeros[i] == numero) {
                return true;
            }
        }
        return false;
    }
}
Gabriel_Martins1

Certo. Mais no que eu tinha feito eu consigo verificar, só consigo ficar no loop enquanto ele ficar digitando um numero ja usado. Maia tem como fazer esae seu cpdigo de uma maneira mais simples ou só da certo assim ?

staroski

Fiz da forma que achei mais simples.
Vai dá criatividade de cada um.

Gabriel_Martins1

Eu entedie o codigo agr consigo fazer do jeito que eu queria… Obrigado

Criado 1 de maio de 2019
Ultima resposta 3 de mai. de 2019
Respostas 7
Participantes 3