0 / 0 / 0
Регистрация: 25.04.2012
Сообщений: 15
1

перемешать масив

14.05.2012, 19:31. Показов 930. Ответов 9
Метки нет (Все метки)

помогите перемешать масив из 28 чисел но так чтобы не повторялись
C++
1
2
3
4
5
6
7
8
9
10
{for (i=1;i<28;i++)
  {b[i]=i+1;
  Form1->Memo1->Lines->Add("  b["+IntToStr(i+1)+"]= "+IntToStr(b[i]));}
  {  randomize();
  for(int i=0; i<27; i++ )
    {c[i]=random(b[i]);
 Form1->Memo1->Lines->Add("  c["+IntToStr(i+1)+"]= "+IntToStr(c[i]));
 }
 }
}
у меня всеравно выписывает одинаковые числа нужно зделать в с++builder
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.05.2012, 19:31
Ответы с готовыми решениями:

Перемешать масив так, чтобы числа в нём не повторялись
помогите перемешать масив так чтобы числа в нём не повторялись.Массив состоит из 28 елементов ...

Перемешать массив
Есть массив, как его можно перемешать? У меня пока только одна идея, создать новый и туда рандомно...

перемешать буквы в слове
Доброго дня всем! Подскажите пожалуйста, где я тут недоглядел? Хотел написать программу которая...

Перемешать строки в StringGrid
Необходимо перемешать строки в StringGrid, размер динамический. Помогите пожалуйста.

9
4039 / 2329 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
14.05.2012, 20:01 2
C++
1
2
3
4
5
6
7
    srand( time( NULL ) );
    for ( int i = 0; i < 28; i++ ) {
        Form1->Memo1->Lines->Add( "  b[" + IntToStr( i ) + "]= " + IntToStr( b[i] = i + 1 ) );
    }
    for ( int i = 0; i < 28; i++ ) {
        Form1->Memo1->Lines->Add( "  c[" + IntToStr( i ) + "]= " + IntToStr( c[i] = rand() % b[i] ) );
    }
1
0 / 0 / 0
Регистрация: 25.04.2012
Сообщений: 15
14.05.2012, 20:13  [ТС] 3
всёравно есть одинаковые
0
4039 / 2329 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
14.05.2012, 20:35 4
Я всего лишь подправил выложенный код. При таком алгоритме, конечно, будут одинаковые.
Выражайся яснее. Надо перемешать чего-то там, как-то там или просто заполнить массив случайными числами?
1
0 / 0 / 0
Регистрация: 25.04.2012
Сообщений: 15
14.05.2012, 20:53  [ТС] 5
так помогите перемешать так, чтобы не было одинаковых
0
4039 / 2329 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
14.05.2012, 20:58 6
Случайность в пределах тысячи пойдет?
C++
1
2
3
    for ( int i = 0; i < 28; i++ ) {
        Form1->Memo1->Lines->Add( "  c[" + IntToStr( i ) + "]= " + IntToStr( c[i] = rand() % 1000 ) );
    }
1
0 / 0 / 0
Регистрация: 25.04.2012
Сообщений: 15
14.05.2012, 21:10  [ТС] 7
мне надо штобы масив формировался из 28 чисел от 1 до 28 которые не повторяются
0
4039 / 2329 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
14.05.2012, 21:23 8
C++
1
2
3
4
5
6
7
8
9
bool arr_contains_num( int *arr, int num, int arr_size ) {
    bool contains = false;
    for ( int i = 0; i < arr_size; i++ ) {
        if ( arr[i] == num ) {
            contains = true;
        }
    }
    return contains;
}
C++
1
2
3
4
    for ( int i = 0; i < 28; i++ ) {
        if ( arr_contains_num( c, (c[i] = rand() % 27 + 1), i ) ) { i--; continue; }
        Form1->Memo1->Lines->Add( "  c[" + IntToStr( i ) + "]= " + IntToStr( c[i] ) ); 
    }
0
4039 / 2329 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
15.05.2012, 23:07 9
Ошибочку допустил - так последний элемент не находит, бесконечный цикл крутит.
Вот так верно:
C++
1
2
3
4
5
6
7
8
9
    int c[28];
    srand( time( NULL ) );
    for ( int i = 0; i < 28; i++ ) {
        if ( arr_contains_num( c, ( c[i] = rand( ) % 28 + 1 ), i ) ) {
            i--;
            continue;
        }
        cout << "  c[" << i << "]= " << c[i]<<endl;
    }
Вот вывод кода.
0
0 / 0 / 0
Регистрация: 25.04.2012
Сообщений: 15
15.05.2012, 23:56  [ТС] 10
блин пишет ошибки так как мне надо на с++ builder
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.05.2012, 23:56
Помогаю со студенческими работами здесь

Рандомно перемешать буквы в тексте
У меня есть текст мне нужно его закодирова что ли. Я придумал такой способ: Я создаю вектор...

Перемешать картинки при нажатии на кнопку
нужно при нажатии кнопки перемешать картинки мой код но он не работает когда я начинаю находить...

Перемешать буквы в слове, перевод с delphi
Помогите пожалуйста, у меня есть массив строк slova который содержит слова на анг.языке mother...

Масив и переменая
Добрый день как правильно задать массив од переменой пример int d =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru