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

Объясните , что делает srand() ?

09.01.2014, 19:15. Показов 1150. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <stdlib.h>
 
main ()
{   
    int a , b, seed;
    //unsigned seed;
    
    for( ; ; )
    {
        a = (1 + rand() % 9);
        b = (1 + rand() % 9);
        printf("How much is %d times %d ? \n", a, b);
        scanf("%d", &seed);
        //srand(seed);
        if (seed == a * b)
            printf("ok\n\n ");
        else printf("bad, try again\n\n");
 
        
    }
 
}
как я понял , он рандомизирует прогу , но когда написал эту программу , то выяснилось , что и без него нормально рандомит. Объясните , пожалуйста , в чем я ошибаюсь ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.01.2014, 19:15
Ответы с готовыми решениями:

Объясните что делает функция
Не понимаю как работает данная программа, кому не сложно объясните пожалуйста что выполняет данный...

Объясните, что делает строка программы
Собственно, искал что-то похожее на своё задание, не получалась финальная часть. Наткнулся на...

Что это значит srand(time(NULL))?
srand(time(NULL));

Объясните что делает эта программа (for,rand,srand)
Пожалуйста объясните что делает эта программа. Поподробней про for(i=1;i&lt;=5;i++) ,...

2
836 / 343 / 67
Регистрация: 20.11.2012
Сообщений: 795
09.01.2014, 19:41 2
srand задает "зерно", т.е. начальную точку отсчета для генератора псч. Посмотри, например, исходники функции rand() в исходниках MSCrt:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void __cdecl srand (
        unsigned int seed
        )
{
        _getptd()->_holdrand = (unsigned long)seed;
}
 
 
int __cdecl rand (
        void
        )
{
        _ptiddata ptd = _getptd();
 
        return( ((ptd->_holdrand = ptd->_holdrand * 214013L
            + 2531011L) >> 16) & 0x7fff );
}
генератор просто умножает зерно на определенную константу и т.д. Если перед вызовом rand() srand() не вызывался, то по стандарту С это аналогично вызову перед rand() srand() c аргументом 1.
Каждый раз при запуске программы будет одна и та же последовательность.
2
0 / 0 / 0
Регистрация: 10.10.2013
Сообщений: 30
10.01.2014, 00:06  [ТС] 3
Спасибо )
0
10.01.2014, 00:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.01.2014, 00:06
Помогаю со студенческими работами здесь

Что делает функция srand?
референсы говорят что нужен srand() что бы rand() работал и давал разные значения каждый раз, но я...

Объясните что делает функция
bool sort_by_fio(const Student &amp;s1, const Student &amp;s2) { const int cmp = strcmp(s1.fam, s2.fam);...

Объясните, что делает программа
нашел программку не совсем понимаю ее строки, объясните тупому,если можно то желательно каждую....

Объясните что делает строка
Объясните пожалуйста что делает эта строка: если можно подробно. StringGrid1.cells:= ...


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

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