Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
1 / 1 / 0
Регистрация: 01.11.2012
Сообщений: 42
1

Помогите найти ошибку в программе (Сгенерировать 10 случайных чисел в интервале 14 – 23)

12.01.2013, 13:18. Показов 1667. Ответов 23
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Сгенерировать 10 случайных чисел в интервале 14 – 23.

что не так в программе?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <ctime>
using namespace std;
 
int main() 
{  
    time_t t;
    srand((unsigned) time(&t));
    
    for(long i=14; i<10; i++) 
        cout << rand() % 24<< endl; 
 
   system("pause");
   return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.01.2013, 13:18
Ответы с готовыми решениями:

Сгенерировать динамический массив из N случайных целых чисел, заданных в интервале от Q до P
Сгенерировать динамический массив из N случайных целых чисел, заданных в интервале от Q до P...

Как сгенерировать 200 случайных чисел без повторов в интервале 100-300
Нужно сделать так, чтобы сгенерировалось заданное число чисел, например, 200. При этом они не...

Сгенерировать 20 случайных чисел. Найти произведение чисел, кратных 3
Задание: сгенерировать 20 случайных чисел. Найти произведение чисел, кратных 3. Вот что у меня...

Сгенерировать 10 случайных чисел, найти сумму нечетных
Написать программу, которая генерирует 10 случайных чисел в диапазоне от 1 до 10 вычисляет и...

23
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
12.01.2013, 13:19 2
Цикл не будет выполнен ни разу.
0
Обитатель форума
201 / 184 / 54
Регистрация: 28.10.2012
Сообщений: 543
12.01.2013, 13:20 3
Цитата Сообщение от alex_len Посмотреть сообщение
C++
1
for(long i=14; i<10; i++)
неверная строчка
0
24 / 24 / 7
Регистрация: 30.05.2011
Сообщений: 129
12.01.2013, 13:21 4
сколько раз можно повторять - там, где есть rand(), обязательно ставьте randomize()
0
1 / 1 / 0
Регистрация: 08.01.2013
Сообщений: 6
12.01.2013, 13:21 5
Цитата Сообщение от alex_len Посмотреть сообщение
C++
1
for(long i=14; i<10; i++)
У вас цикл неправильный. Начинается с 14 и продолжается до 10. Это, как минимум, не логично.
0
Croessmah
12.01.2013, 13:21
  #6

Не по теме:

Цитата Сообщение от Ogniel Посмотреть сообщение
сколько раз можно повторять - там, где есть rand(), обязательно ставьте randomize()
Да ну?:D Жестоко. Где аргументы?

1
97 / 71 / 5
Регистрация: 18.05.2011
Сообщений: 343
Записей в блоге: 1
12.01.2013, 13:23 7
и для
C
1
system("pause");
нада
C
1
#include <cstdlib>
0
Обитатель форума
201 / 184 / 54
Регистрация: 28.10.2012
Сообщений: 543
12.01.2013, 13:24 8
Саня gamer, <iostream> отлично справляется с system("pause");
0
24 / 24 / 7
Регистрация: 30.05.2011
Сообщений: 129
12.01.2013, 13:26 9
Цитата Сообщение от Croessmah Посмотреть сообщение

Не по теме:


Да ну?:D Жестоко. Где аргументы?

оу. зачем мне объяснять знающему человеку, что такое генератор случайных чисел?
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
12.01.2013, 13:26 10
Цитата Сообщение от Afflicted Посмотреть сообщение
Саня gamer, <iostream> отлично справляется с system("pause");
Стандарт не регламентирует где какие файлы включаются, так что лучше включать все необходимые заголовки. В данном случае, например, gcc выдаст ошибку. А студия...она ж мелкософтовская
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
12.01.2013, 13:27 11
Цитата Сообщение от Ogniel Посмотреть сообщение
там, где есть rand(), обязательно ставьте randomize()
Во-первых это совершенно необязательно. Есть случаи, когда надо получить как-бы случайные, но повторяющиеся при каждом запуски последовательности. Например, при отладке. Во-вторых, есть srand, он выполняет совершенно такую же функцию. В-третьих, не у всех компиляторов есть макрос randomize.
Так что вы совершенно напрасно напали на ТС.
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
12.01.2013, 13:27 12
Цитата Сообщение от Ogniel Посмотреть сообщение
оу. зачем мне объяснять знающему человеку, что такое генератор случайных чисел?
Ну объясните мне, зачем нам то, чего почти нигде нет?
0
97 / 71 / 5
Регистрация: 18.05.2011
Сообщений: 343
Записей в блоге: 1
12.01.2013, 13:28 13
Afflicted мо и так, но у меня не справляется))
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
12.01.2013, 13:39 14
Господа! О чем речь? У ТС явная ошибка в операторе цикла, может он еще неправильно понимает, что это такое, вот тут бы ему и помочь.
А со случайными числами у него все в порядке, и все сделано вполне грамотно. Ну, можно обойтись без time_t t просто сказав stand(time(NULL));, но уж такие мелочи!
А с циклом так.
Вначале присваивается i = 14.
Потом проверяется i < 10 ? Не выполняется? (ведь 14 >= 10) - выход из цикла.

Добавлено через 2 минуты
Правильный код
C
1
2
for(long i=0; i<10; i++) 
        cout << (rand() % 11) + 14<< endl;
(концы интервала тоже будут участвовать)
0
1 / 1 / 0
Регистрация: 01.11.2012
Сообщений: 42
12.01.2013, 13:44  [ТС] 15
если надо от 13-22 , то будет
C++
1
2
    for(long i=0; i<10; i++) 
        cout << (rand() % 10) + 13<< endl;
1
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
12.01.2013, 13:46 16
Байт,
C++
1
2
for(long i=0; i<10; i++) 
        cout << (rand() % 11) + 14<< endl;
допустим, что rand() вернул 10, получаем 10%11 == 10, дальше 10+14=24, у автора 14-23. Надо делать rand() % 10

В общем виде

C++
1
2
3
4
5
#define MIN 14
#define MAX 23
...
for(int i=0; i<10; i++) 
   cout << rand() % (MAX - MIN + 1) + MIN<< endl;
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
12.01.2013, 13:46 17
Цитата Сообщение от alex_len Посмотреть сообщение
то будет
Правильно. Я пока писал, забыл начальное условие.
0
Mobile Software Engineer
Эксперт С++
5381 / 1585 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
12.01.2013, 13:47 18
Цитата Сообщение от Байт Посмотреть сообщение
stand(time(NULL));
stand(), там r. не в упрек, естественно.
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
12.01.2013, 13:48 19
Psilon, И вы правы! Но я уже извинился...
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
12.01.2013, 13:49 20
Байт, да не видел
0
12.01.2013, 13:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.01.2013, 13:49
Помогаю со студенческими работами здесь

Сгенерировать массив из 30 чисел в интервале 1 до 100. Найти ВТОРОЙ наибольший элемент массива.
Сгенерировать массив из 30 чисел в интервале 1 до 100. Найти ВТОРОЙ наибольший элемент массива.

Сгенерировать последовательность датчиком случайных чисел. Найти сумму номеров тех элементов последовательности, которые отрицательны
Помогите пожалуйста разобраться с задачей: Сгенерировать последовательность с помощью датчика...

Найти произведение элементов, кратных 3 в массиве, заданном датчиком случайных чисел на интервале [-28, 27]
Найти произведение элементов, кратных 3 в массиве, заданном датчиком случайных чисел на интервале...

Найти произведение элементов, кратных 3 в массиве, заданном датчиком случайных чисел на интервале [-28, 27]
Найти произведение элементов, кратных 3 в массиве, заданном датчиком случайных чисел на интервале ....

Сгенерировать массив из случайных чисел, найти сумму элементов расположенных выше главной диагонали в строках, начинающихся с нуля
Вид массива: _______ 0001 4321 0321 0021 _______ Сгенерировать массив из случайных чисел,...

Помогите найти ошибку в программе
program idiot; var a,b,c:text; s:string; v:string; begin assign(a,'1.txt'); reset(a);...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru