1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление

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

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

  1. Dmitrich

    Dmitrich Гость

    Репутация:
    0
    мне надо забить массив 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

    Репутация:
    0
    Регистрация:
    12 дек 2007
    Сообщения:
    469
    Симпатии:
    0
    Я си не знаю, но по-моему должно выглядеть как-то так:
    Код:
    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 Гость

    Репутация:
    0
    от нуля до 25ти 26 чисел.

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

    Kmet Well-Known Member
    Java Team

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

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

    biz Гость

    Репутация:
    0
    #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 );
    }
    }
     
Загрузка...

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