Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 25.04.2012
Сообщений: 15

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

14.05.2012, 19:31. Показов 1225. Ответов 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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.05.2012, 19:31
Ответы с готовыми решениями:

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

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

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

9
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
14.05.2012, 20:01
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  [ТС]
всёравно есть одинаковые
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
14.05.2012, 20:35
Я всего лишь подправил выложенный код. При таком алгоритме, конечно, будут одинаковые.
Выражайся яснее. Надо перемешать чего-то там, как-то там или просто заполнить массив случайными числами?
1
0 / 0 / 0
Регистрация: 25.04.2012
Сообщений: 15
14.05.2012, 20:53  [ТС]
так помогите перемешать так, чтобы не было одинаковых
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
14.05.2012, 20:58
Случайность в пределах тысячи пойдет?
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  [ТС]
мне надо штобы масив формировался из 28 чисел от 1 до 28 которые не повторяются
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
14.05.2012, 21:23
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
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
15.05.2012, 23:07
Ошибочку допустил - так последний элемент не находит, бесконечный цикл крутит.
Вот так верно:
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  [ТС]
блин пишет ошибки так как мне надо на с++ builder
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.05.2012, 23:56
Помогаю со студенческими работами здесь

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

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

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

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

Масив и переменая
Добрый день как правильно задать массив од переменой пример int d = Query1-&gt;FieldByName(&quot;Pole2&quot;)-&gt;AsInteger; int x=0;...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru