Randomize без повторения чисел

Тема в разделе "Общие вопросы по С и С++", создана пользователем Dmitrich, 14 апр 2008.

  1. Dmitrich

    Dmitrich Гость

    мне надо забить массив 25-ю случайными числами от 0 до 25.
    вот я его забиваю:


    x=random(25);
    for(j=0;j<=25;j++)
    {array[j]=x; printf("%d", array[j]);}



    трудность в том, чтобы эти числа не повторялись. как сделать проверку?
     
  2. Vadik(R)

    Vadik(R) Well-Known Member

    Регистрация:
    12 дек 2007
    Сообщения:
    483
    Симпатии:
    0
    Я си не знаю, но по-моему должно выглядеть как-то так:
    Код (Text):
    n=-1;
    while (n<=25)
    {x=random(25); fl=true;
    for(i=0; i<=n; i++)
    if (a[i]==x) {fl=false; break;};
    if fl {n++;a[n]=x; printf("%d", array[n]);};
    }
     
  3. gamecreator

    gamecreator Гость

    от нуля до 25ти 26 чисел.

    for(i=0; i<=25; i++)
    {
    a[n]=random(25);
    printf("%d", array[n]);
    }
     
  4. Kmet

    Kmet Well-Known Member
    Java Team

    Регистрация:
    25 май 2006
    Сообщения:
    1.018
    Симпатии:
    1
    std::set ?!
    или
    std::shuffle
     
  5. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Повторения будут
     
  6. biz

    biz Гость

    #include <stdio.h>

    void main( void )
    {
    int i, j, k, present;
    int array[26];
    for ( i = 0; i < 26; i++ ) {
    array = -1;

    do {
    present = 0;
    k = rand() % 26;
    for ( j = 0; j < i; j++ ) {
    if ( array[j] == k ) present = 1;
    }
    } while ( present );

    array = k;

    printf( "%d: %d\n", i, k );
    }
    }
     
Загрузка...

Поделиться этой страницей