none
Como criar um array de inteiros com números aleatórios sem repetição? RRS feed

  • Pergunta

  • Boa Noite,

    Gostaria de saber como posso criar um array inteiros, com 10 números aleatórios, sem repetir nenhum. Os números podem estar entre 1 e 25.

    Fiz o código abaixo, só que os números se repetem...

    int[] numeros = new int[10];
    Random rm = new Random();
    
    for (int i = 0; i < 10;i++)
    {
       numeros[i] = rm.Next(1,25);
    }
    
    Array.Sort(numeros);
    
    
    

    terça-feira, 7 de julho de 2015 23:38

Respostas

  • Tentei fazer um código aqui e deu certo.

                int[] numeros = new int[10];
                Random rm = new Random();
                for (int xx = 0; xx < 10; xx++)
                {
                    while (true)
                    {
                        int temp = rm.Next(1,26);
    
                        if (numeros.Contains(temp) == false)
                        {
                            numeros[xx] = temp;
                            break;
                        }
                    }
                }
    
                Array.Sort(numeros);

    • Sugerido como Resposta MARCOSROCHA21 quarta-feira, 8 de julho de 2015 10:47
    • Marcado como Resposta Marcos SJ quinta-feira, 9 de julho de 2015 18:09
    quarta-feira, 8 de julho de 2015 01:32

Todas as Respostas

  • Se for uma questão didatica (escolar) tem que ver em que ponto da materia voce está para dar a resposta mais correta com o que seu professor esta querendo passar...

    Lembro que aprendi isso para uso de arvores binarias e etc...

    Agora para uso pratico, tem o Linq....

    numeros = numeros.Distinct().ToArray();


    Microsoft Community Contributor

    terça-feira, 7 de julho de 2015 23:42
  • Tentei fazer um código aqui e deu certo.

                int[] numeros = new int[10];
                Random rm = new Random();
                for (int xx = 0; xx < 10; xx++)
                {
                    while (true)
                    {
                        int temp = rm.Next(1,26);
    
                        if (numeros.Contains(temp) == false)
                        {
                            numeros[xx] = temp;
                            break;
                        }
                    }
                }
    
                Array.Sort(numeros);

    • Sugerido como Resposta MARCOSROCHA21 quarta-feira, 8 de julho de 2015 10:47
    • Marcado como Resposta Marcos SJ quinta-feira, 9 de julho de 2015 18:09
    quarta-feira, 8 de julho de 2015 01:32