1 / 1 / 0
Регистрация: 21.07.2009
Сообщений: 50
|
||||||
1 | ||||||
Проблемка с генерацией случайных чисел22.08.2009, 15:25. Показов 1317. Ответов 16
Метки нет (Все метки)
Доброго дня, уважаемые форумчане
Имею нижеследующий код
Так вот эти последовательности в рамках цикла i_o повторяются с определенным интервалом. Например 2 3 1 5 0 4 2 3 1 5 0 4 2 3 1 5 0 4 5 1 3 0 2 4 5 1 3 0 2 4 5 1 3 0 2 4 Никак не могу понять в чем причина такой ситуации - может из-за srand((unsigned)time( NULL ) )? Вообщем об это сломал себе моск, подскажите что не так.
0
|
22.08.2009, 15:25 | |
Ответы с готовыми решениями:
16
трабл с генерацией псевдослучайных чисел Генерацией массива чисел циклом Задача с генерацией рандомных чисел в цикле (FOR) Запишите шесть строк, состоящих из двух случайных чисел типа int, которые не больше 10 и трех случайных чисел |
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
22.08.2009, 15:33 | 2 |
Разумеется, из-за него
Ты просто при каждом вызове своей функции Selection заново инициализируешь ГСЧ. А на самом деле, инициализировать его нужно только один раз при старте программы - например, можешь сделать это первой же строкой в main(), ну или где тебе будет удобно, но - один! раз.
0
|
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
23.08.2009, 23:10 | 3 |
Прочитай наконец-то https://www.cyberforum.ru/cpp-... 44753.html
0
|
1 / 1 / 0
Регистрация: 21.07.2009
Сообщений: 50
|
||||||
24.08.2009, 10:51 [ТС] | 4 | |||||
читал, только там не было сказано, что srand((unsigned)time( NULL ) ) нужно только один раз объявлять
теперь разобрался по пути вопрос задам опять же код:
0
|
562 / 373 / 55
Регистрация: 05.04.2009
Сообщений: 767
|
||||||
24.08.2009, 11:17 | 5 | |||||
Molotoff,
0
|
2 / 2 / 0
Регистрация: 29.05.2009
Сообщений: 20
|
|
24.08.2009, 11:46 | 6 |
Измени || на && и все будет ок.
0
|
1 / 1 / 0
Регистрация: 21.07.2009
Сообщений: 50
|
|
24.08.2009, 11:54 [ТС] | 7 |
точно, спасибо
0
|
26.08.2009, 20:18 | 8 | |||||
Возьми за привычку читать warning'и компилятора. Поту как любой уважающий себя компилятор выдаст предупреждение на эту конструкцию, потому как результат логического выражения всегда равен true
0
|
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
26.08.2009, 20:24 | 9 |
Тут все и выплывет
0
|
26.08.2009, 20:28 | 10 |
С такой опцией временами задалбывает. Напишешь переменную, не успеешь её заиспользовать - и warning "неиспользуемая переменная". При написании небольших программ (выдача компиляции от которых условно занимает меньше экрана) я просто включаю "все предупреждения". Но если программа большая и компилируется долго - тут уже приходится включать "предупреждения как ошибки", ибо глазами за этим уже не уследишь
0
|
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
26.08.2009, 20:33 | 11 |
Новичкам полезно такую опцию включать.
А они пишут небольшие программы. Насчет включения всех предупреждений. Если имеется в виду gcc, то там опция -Wall не включает все предупреждения. Все и не нужно - там довольно дурацкие есть. Что касается Visual Studio 2005 - там есть level warnings. Достаточно включить level 3, потому что на level 4 будут совсем дурацкие предупреждения.
0
|
1 / 1 / 0
Регистрация: 21.07.2009
Сообщений: 50
|
||||||
27.08.2009, 12:37 [ТС] | 12 | |||||
а зачем нам warning`и? мы и при горящем Check engine кататься будем и на сервис не поедем ))
это ж русское авось у меня тут вопрос небольшого характера - если я вызываю свою функцию
Т.е. грубо говоря из матрицы 5x3 нужно передать строки со второй по пятую например.
0
|
2816 / 1407 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
|
|
27.08.2009, 12:43 | 13 |
Нет. Либо отдельно создать указатель на строки со второй по пятой и передать его. Либо передавать в функции по строчно. (т.е. не матрицу, а строки).
0
|
27.08.2009, 15:31 | 14 | |||||
Molotoff, через int** в принципе нельзя передавать указатель на духмерный массив. Только через int* с дальнейшей арифметикой ручками (в этом случае можешь передавать на середину массива) либо прямо писать в параметре "int arr[3][5]", но середину массива передавать с точностью до одного измерения (в твоём понятии это "строка")
Добавлено через 1 минуту Ещё можно вот так:
0
|
2816 / 1407 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
|
|
27.08.2009, 15:36 | 15 |
0
|
1 / 1 / 0
Регистрация: 21.07.2009
Сообщений: 50
|
|
27.08.2009, 17:37 [ТС] | 17 |
спасибо, друзья, я все понял думаю просто передать еще параметр - номер строки, с которой начинать работу с данным массивом, так будет проще всего
0
|
27.08.2009, 17:37 | |
27.08.2009, 17:37 | |
Помогаю со студенческими работами здесь
17
Сформировать одномерный массив целых чисел, используя датчик случайных чисел Сформировать одномерный массив целых чисел, используя датчик случайных чисел Сформировать одномерный массив целых чисел, используя датчик случайных чисел. Сформировать одномерный массив целых чисел, используя датчик случайных чисел Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |