Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Randomize без повторения чисел
Форум программистов > Системное программирование > C, С++ и С Builder > Общие вопросы по С и С++
Dmitrich
мне надо забить массив 25-ю случайными числами от 0 до 25.
вот я его забиваю:


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



трудность в том, чтобы эти числа не повторялись. как сделать проверку?
Vadik(R)
Я си не знаю, но по-моему должно выглядеть как-то так:
Код
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]);};
}
gamecreator
от нуля до 25ти 26 чисел.

for(i=0; i<=25; i++)
{
a[n]=random(25);
printf("%d", array[n]);
}
Kmet
std::set ?!
или
std::shuffle
European
Цитата(gamecreator @ 14:04:2008 - 19:02) *
от нуля до 25ти 26 чисел.

Повторения будут
biz
Цитата(Dmitrich @ 14:04:2008, 18:07 ) *
мне надо забить массив 25-ю случайными числами от 0 до 25.
вот я его забиваю:


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



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


#include <stdio.h>

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

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

array[i] = k;

printf( "%d: %d\n", i, k );
}
}
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.