Ir ao conteúdo
  • Cadastre-se
Cristian Alejandro Rodriguez

Digitar vários números e que ele me diga qual seria o numero repetido

Recommended Posts

Boa tarde queria pedir alguma orientação ao respeito de um programa que estou querendo fazer, basicamente o que quero é digitar vários números e que ele me diga qual seria o numero repetido e quantas vezes fiz um código, se alguém puder ajudar agradeço.


 

package treino;
import java.util.*;
public class teste {
    public static void main(String[] args) {
        Scanner ler = new Scanner(System.in);
        
        String num = null;
        int n1;
    
        for ( int i=0; i<4; i++){ 
        
            System.out.print("Ingresse um numero: ");
            num=ler.next();
        
        }
        
       ler.close();
    }
}

 

Editado por dif
Usar o botão code para postar o código e melhorar o título

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Cristian Alejandro Rodriguez Poderia explicar melhor o que o programa precisa fazer? Não entendi muito bem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@B0b5cooter sim claro, primeiro agradeço sua atenção, não sei se seria possível, mas basicamente queria digitar números por exemplo 10 números e ao finalizar a contagem se tiver algum número repetido me informa-se por exemplo número 33 foi inserido 3 vezes, número 7 duas vezes e assim sucessivamente caso nenhum número se repita finaliza.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Cristian Alejandro Rodriguez

Faz tempo que eu não programo em java então não posso lhe ajudar diretamente com o código, mas para responder sua pergunta é necessário que você use vetores ou arraylist.

Creio que seja mais fácil usando vetores e pelo menos 2 laços de for.  

Veja este link que contém um código que aparenta funcionar:  http://www.guj.com.br/t/quantas-vezes-o-numero-se-repete-em-um-vetor/69313/5

 

Se quiser fazer com arraylist veja este outro: http://www.guj.com.br/t/contar-numeros-repetidos-arraylist/58125/3

Editado por dif
  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro.... se tu quer comparar os numeros repetidos tu precisa que os numeros sejam inteiros e não strings certo. Então, primeiro, mantém o teu String num para receber a entrada e o teu int n1 para transformar essa string em um número depois. Coloquei (declarei instanciei e iniciei) um vetor de numeros de 4 posições também: por que ? por que antes, toda vez que tu passava pelo "for", tu sobrescrevia a tua string num e perdia as informações que foram colocadas antes. Se tu quer manter essas informações tu vai precisar do array para guardar elas em cada posicao.

String num;
int n1;
int[] numeros = {0,0,0,0};

Segundo... Ok. Resolvi um problema e te dei outro: como é que tu vai fazer ler.next() e jogar essa entrada para dentro de uma posicao do teu vetor de inteiros, se o java diz que tu só pode jogar um ler.next() para dentro de um string? Ok. Vou te mostrar como o Integer.parseInt funciona:

for ( int i=0; i<4; i++) {  
            System.out.print("Ingresse um numero: ");
            num=ler.next(); // até aqui igual como estava antes

  			try {
    			n1 = Integer.parseInt(num); /* nessa linha eu faço o seguinte:
pego num (String) mando pro método "Integer.parseInt" e o método manda de volta
pra mim um inteiro, e eu jogo esse inteiro pra dentro de n1 (int). Legal ! Mas
isso sempre funciona ? E se alguém escrever "abóbora" e essa entrada for para num,
o método vai me devolver um número? pois é... abóbora não é um número. nem tudo é
perfeito. então, toda vez que alguém escrever algo que não seja um número o método
vai bugar. Só que ao invés de deixar o método bugar eu sou mais esperta: vou mandar
ele só imprimir a mensagem de erro a seguir e ignorar o erro, e continuar rodando. */
    		} catch (NumberFormatException error) { /* o catch "pega o erro" antes
que o método bugue, e ao invés de deixar o método bugar e ferrar com o meu programinha,
eu só imprimo a minha mensagem de erro e o programa segue*/
    			System.out.println("Erro! A entrada deve ser um NÚMERO: como 1.");
    		}
/* certo. agora que eu já consegui fazer o aboboromaníaco escrever um número eu coloco
esse número dentro do meu vetor de inteiros, para não perder ele numa sobrescrição.*/
  			numeros[i] = n1;
}

Terceiro... agora é fácil. é só comparar o numero de cada posicao do vetor com o numero de todas as posições do vetor e ir guardando os que estão repetidos (em uma variavel nova) e quantas vezes se repetiram. Dica: use dois "for"s. Depois me mostra como ficou, se tu conseguiu ou não, que eu te ajudo de novo.

Editado por Rafaela Bennett
  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 02/07/2016 às 01:28, Rafaela Bennett disse:

 

 

Boa Noite, Rafaela muito obrigado pelas instruções, últimamente tive pouco tempo de mexer, peço até desculpas pela demora em responder vou testar nesses dias vou testar e qualquer coisa aviso. Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×