Форум программистов, компьютерный форум, киберфорум
Наши страницы

C для начинающих

Войти
Регистрация
Восстановить пароль
 
Blastname
0 / 0 / 0
Регистрация: 10.10.2013
Сообщений: 30
#1

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

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

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

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

Что делает функция? - C (СИ)
Здравствуйте, объясните, пожалуйста что делает эта функция ? char fun(char *A) { char B; return A &amp;&amp; A &amp;&amp; A&gt;(B=fun(A+1)) ? B: A; } ...

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

Что делает эта программа? - C (СИ)
#include &lt;malloc.h&gt; #include &lt;stdio.h&gt; struct tagStack{ double data; struct tagStack *prev; }*stack=0; void...

Что делает приведенный код? - C (СИ)
Подскажите пожалуйста что делает эта функция?!с чем работает?подсчитывает ли счетчики,если тут какие-либо счетчики?!Кому не трудно помогите...

2
WhiteP
606 / 204 / 23
Регистрация: 20.11.2012
Сообщений: 426
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 / 0
Регистрация: 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
Привет! Вот еще темы с ответами:

Объяснить, что делает программа - C (СИ)
объяснить, что делает программа. void main() { char stroka, podstroka; int I,j,k; puts(“Введите строку”); gets(stroka); ...

Что делает этот кусок программы - C (СИ)
void graph(void) { // request auto detection int gdriver = DETECT, gmode, errorcode; // initialize graphics mode ...

Что делает функция Timespec diff - C (СИ)
Народ, помогите разобраться что делает этот код, особенно функция timespec diff() #include &lt;time.h&gt; #include &lt;stdio.h&gt; timespec...

Что делает приведенный фрагмент кода - C (СИ)
Что делает следующий фрагмент кода и почему? void foo(void) { unsigned int a = 6; int b = -20; (a+b &gt; 6) ? puts(“&gt;...


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

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

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