Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
 
alex_len
1 / 1 / 0
Регистрация: 01.11.2012
Сообщений: 42
12.01.2013, 13:18     Помогите найти ошибку в программе (Сгенерировать 10 случайных чисел в интервале 14 – 23) #1
Сгенерировать 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2013, 13:18     Помогите найти ошибку в программе (Сгенерировать 10 случайных чисел в интервале 14 – 23)
Посмотрите здесь:

C++ Помогите найти ошибку в программе
C++ помогите найти ошибку в программе
Помогите найти ошибку в программе! (С++) C++
C++ Сгенерировать 10 чисел в интервале от 1 до 50 и посчитать, сколько среди них чисел > 15
C++ Помогите найти ошибку в моей программе
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
 Аватар для Байт
13993 / 8824 / 1231
Регистрация: 24.12.2010
Сообщений: 15,990
12.01.2013, 13:19     Помогите найти ошибку в программе (Сгенерировать 10 случайных чисел в интервале 14 – 23) #2
Цикл не будет выполнен ни разу.
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 538
12.01.2013, 13:20     Помогите найти ошибку в программе (Сгенерировать 10 случайных чисел в интервале 14 – 23) #3
Цитата Сообщение от alex_len Посмотреть сообщение
C++
1
for(long i=14; i<10; i++)
неверная строчка
Ogniel
 Аватар для Ogniel
24 / 24 / 1
Регистрация: 30.05.2011
Сообщений: 127
12.01.2013, 13:21     Помогите найти ошибку в программе (Сгенерировать 10 случайных чисел в интервале 14 – 23) #4
сколько раз можно повторять - там, где есть rand(), обязательно ставьте randomize()
enjoywithme
0 / 0 / 0
Регистрация: 08.01.2013
Сообщений: 6
12.01.2013, 13:21     Помогите найти ошибку в программе (Сгенерировать 10 случайных чисел в интервале 14 – 23) #5
Цитата Сообщение от alex_len Посмотреть сообщение
C++
1
for(long i=14; i<10; i++)
У вас цикл неправильный. Начинается с 14 и продолжается до 10. Это, как минимум, не логично.
Croessmah
12.01.2013, 13:21
  #6

Не по теме:

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

Саня gamer
96 / 70 / 1
Регистрация: 18.05.2011
Сообщений: 343
Записей в блоге: 1
12.01.2013, 13:23     Помогите найти ошибку в программе (Сгенерировать 10 случайных чисел в интервале 14 – 23) #7
и для
C
1
system("pause");
нада
C
1
#include <cstdlib>
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 538
12.01.2013, 13:24     Помогите найти ошибку в программе (Сгенерировать 10 случайных чисел в интервале 14 – 23) #8
Саня gamer, <iostream> отлично справляется с system("pause");
Ogniel
 Аватар для Ogniel
24 / 24 / 1
Регистрация: 30.05.2011
Сообщений: 127
12.01.2013, 13:26     Помогите найти ошибку в программе (Сгенерировать 10 случайных чисел в интервале 14 – 23) #9
Цитата Сообщение от Croessmah Посмотреть сообщение

Не по теме:


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

оу. зачем мне объяснять знающему человеку, что такое генератор случайных чисел?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
12.01.2013, 13:26     Помогите найти ошибку в программе (Сгенерировать 10 случайных чисел в интервале 14 – 23) #10
Цитата Сообщение от Afflicted Посмотреть сообщение
Саня gamer, <iostream> отлично справляется с system("pause");
Стандарт не регламентирует где какие файлы включаются, так что лучше включать все необходимые заголовки. В данном случае, например, gcc выдаст ошибку. А студия...она ж мелкософтовская
Байт
 Аватар для Байт
13993 / 8824 / 1231
Регистрация: 24.12.2010
Сообщений: 15,990
12.01.2013, 13:27     Помогите найти ошибку в программе (Сгенерировать 10 случайных чисел в интервале 14 – 23) #11
Цитата Сообщение от Ogniel Посмотреть сообщение
там, где есть rand(), обязательно ставьте randomize()
Во-первых это совершенно необязательно. Есть случаи, когда надо получить как-бы случайные, но повторяющиеся при каждом запуски последовательности. Например, при отладке. Во-вторых, есть srand, он выполняет совершенно такую же функцию. В-третьих, не у всех компиляторов есть макрос randomize.
Так что вы совершенно напрасно напали на ТС.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
12.01.2013, 13:27     Помогите найти ошибку в программе (Сгенерировать 10 случайных чисел в интервале 14 – 23) #12
Цитата Сообщение от Ogniel Посмотреть сообщение
оу. зачем мне объяснять знающему человеку, что такое генератор случайных чисел?
Ну объясните мне, зачем нам то, чего почти нигде нет?
Саня gamer
96 / 70 / 1
Регистрация: 18.05.2011
Сообщений: 343
Записей в блоге: 1
12.01.2013, 13:28     Помогите найти ошибку в программе (Сгенерировать 10 случайных чисел в интервале 14 – 23) #13
Afflicted мо и так, но у меня не справляется))
Байт
 Аватар для Байт
13993 / 8824 / 1231
Регистрация: 24.12.2010
Сообщений: 15,990
12.01.2013, 13:39     Помогите найти ошибку в программе (Сгенерировать 10 случайных чисел в интервале 14 – 23) #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;
(концы интервала тоже будут участвовать)
alex_len
1 / 1 / 0
Регистрация: 01.11.2012
Сообщений: 42
12.01.2013, 13:44  [ТС]     Помогите найти ошибку в программе (Сгенерировать 10 случайных чисел в интервале 14 – 23) #15
если надо от 13-22 , то будет
C++
1
2
    for(long i=0; i<10; i++) 
        cout << (rand() % 10) + 13<< endl;
Psilon
Master of Orion
 Аватар для Psilon
5742 / 4690 / 619
Регистрация: 10.07.2011
Сообщений: 14,162
Записей в блоге: 5
Завершенные тесты: 4
12.01.2013, 13:46     Помогите найти ошибку в программе (Сгенерировать 10 случайных чисел в интервале 14 – 23) #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;
Байт
 Аватар для Байт
13993 / 8824 / 1231
Регистрация: 24.12.2010
Сообщений: 15,990
12.01.2013, 13:46     Помогите найти ошибку в программе (Сгенерировать 10 случайных чисел в интервале 14 – 23) #17
Цитата Сообщение от alex_len Посмотреть сообщение
то будет
Правильно. Я пока писал, забыл начальное условие.
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
12.01.2013, 13:47     Помогите найти ошибку в программе (Сгенерировать 10 случайных чисел в интервале 14 – 23) #18
Цитата Сообщение от Байт Посмотреть сообщение
stand(time(NULL));
stand(), там r. не в упрек, естественно.
Байт
 Аватар для Байт
13993 / 8824 / 1231
Регистрация: 24.12.2010
Сообщений: 15,990
12.01.2013, 13:48     Помогите найти ошибку в программе (Сгенерировать 10 случайных чисел в интервале 14 – 23) #19
Psilon, И вы правы! Но я уже извинился...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.01.2013, 13:49     Помогите найти ошибку в программе (Сгенерировать 10 случайных чисел в интервале 14 – 23)
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Psilon
Master of Orion
 Аватар для Psilon
5742 / 4690 / 619
Регистрация: 10.07.2011
Сообщений: 14,162
Записей в блоге: 5
Завершенные тесты: 4
12.01.2013, 13:49     Помогите найти ошибку в программе (Сгенерировать 10 случайных чисел в интервале 14 – 23) #20
Байт, да не видел
Yandex
Объявления
12.01.2013, 13:49     Помогите найти ошибку в программе (Сгенерировать 10 случайных чисел в интервале 14 – 23)
Ответ Создать тему
Опции темы

Текущее время: 22:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru