Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Blastname
0 / 0 / 3
Регистрация: 10.10.2013
Сообщений: 30
#1

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

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

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");
 
        
    }
 
}
как я понял , он рандомизирует прогу , но когда написал эту программу , то выяснилось , что и без него нормально рандомит. Объясните , пожалуйста , в чем я ошибаюсь ?
http://www.cyberforum.ru/c-beginners/thread2233635.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2014, 19:15
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Объясните , что делает srand() ? (C (СИ)):

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

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

Что делает функция?
Здравствуйте, объясните, пожалуйста что делает эта функция ? char fun(char *A)...

Что делает эта программа?
#include &lt;malloc.h&gt; #include &lt;stdio.h&gt; struct tagStack{ double data; ...

Объяснить, что делает программа
объяснить, что делает программа. void main() { char stroka, podstroka;...

2
WhiteP
611 / 209 / 32
Регистрация: 20.11.2012
Сообщений: 433
Завершенные тесты: 1
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
Blastname
0 / 0 / 3
Регистрация: 10.10.2013
Сообщений: 30
10.01.2014, 00:06  [ТС] #3
Спасибо )
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2014, 00:06
Привет! Вот еще темы с решениями:

Что делает эта программа?
#define K 50 int x, j; /*ввод x */.. for (j=0; j&lt;K-1; j++) x=x;

Что делает приведенный код?
Подскажите пожалуйста что делает эта функция?!с чем работает?подсчитывает ли...

Что делает функция Timespec diff
Народ, помогите разобраться что делает этот код, особенно функция timespec...

Что делает данный кусок кода?
void control() { int i_input; i_input=0; i_input = getch(); ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru