Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Перемешать элементы большого, одномерного массива
|
|||
|---|---|---|---|
|
#18+
У меня небольшая проблема возникла. Хочу заранее предупредить: я буквально несколько дней с С++ работаю. Только начал осваивать. Да и вообще программированием тоже относительно недавно увлекся. Поэтому прошу сильно не ругать)) В общем у меня возникла такая задача: Нужно задать одномерный массив, примерно такой: Код: plaintext 1. 2. Элементы массива соответственно равны от 1 до 2400000. А после перемешать все элементы и вывести полученный массив. Я примерно догадываюсь что проблема связана с размером массива... Но надеюсь мне все-таки помогут)) У меня вот такой код программы получился: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Ошибок в коде нету. Компиляция проходит успешно, но при запуске программа прекращает работу. Может слишком много оперативки требуется для этого? Если да, то как уменьшить требуемую память? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 04:58 |
|
||
|
Перемешать элементы большого, одномерного массива
|
|||
|---|---|---|---|
|
#18+
Alvisid Может слишком много оперативки требуется для этого? Если да, то как уменьшить требуемую память? :)Угадал. Статический массив такого размера это большое "НЕТ". Делай динамический. Читай учебник про команду new. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 05:24 |
|
||
|
Перемешать элементы большого, одномерного массива
|
|||
|---|---|---|---|
|
#18+
Alvisid, или так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. или так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 05:47 |
|
||
|
Перемешать элементы большого, одномерного массива
|
|||
|---|---|---|---|
|
#18+
переполнение стека. Можно ключиками (при компиляции?) подкрутить стек, как это делается можно нагуглить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 11:18 |
|
||
|
Перемешать элементы большого, одномерного массива
|
|||
|---|---|---|---|
|
#18+
White Owl, White OwlAlvisid Может слишком много оперативки требуется для этого? Если да, то как уменьшить требуемую память? :)Угадал. Статический массив такого размера это большое "НЕТ". Делай динамический. Читай учебник про команду new. Какая разница-то? Ему только надо размер стека расширить. Автор, делай лучше статический массив, добавить static в объявление переменной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 13:12 |
|
||
|
Перемешать элементы большого, одномерного массива
|
|||
|---|---|---|---|
|
#18+
Alvisid, Тем не менее в коде есть проблемы. Связано с тем, что делает функция rand. function <cstdlib> rand int rand (void); Generate random number Returns a pseudo-random integral number in the range between 0 and RAND_MAX. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 13:15 |
|
||
|
Перемешать элементы большого, одномерного массива
|
|||
|---|---|---|---|
|
#18+
m_Sla, Спасибо) Попробовал первый предложенный вариант и все заработало) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 14:35 |
|
||
|
Перемешать элементы большого, одномерного массива
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Вы правы. Эту проблему я тоже решил. Вот как все выглядит сейчас: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. Сейчас все работает. И после каждого запуска массив перемешивается по-разному) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 14:40 |
|
||
|
Перемешать элементы большого, одномерного массива
|
|||
|---|---|---|---|
|
#18+
AlvisidMasterZiv, Вы правы. Эту проблему я тоже решил. Вот как все выглядит сейчас: Код: plaintext 1. Чёта я не вижу, что ты там решил... rand() % size будет в диапазоне от 0 до min( RAND_MAX, size ). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 17:05 |
|
||
|
Перемешать элементы большого, одномерного массива
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Вижу( теперь понял.. Только как это исправить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2013, 21:37 |
|
||
|
Перемешать элементы большого, одномерного массива
|
|||
|---|---|---|---|
|
#18+
AlvisidMasterZiv, Вижу( теперь понял.. Только как это исправить? Для начала подумать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2013, 22:58 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=73&tid=2020033]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 11ms |
| total: | 147ms |

| 0 / 0 |
