rand изменяет значение без изменения начального числа

Возьмем следующую программу:

#include <cstdlib>
using std::rand;

#include <iostream>
using std::cout;

int main()
{
    cout << rand() << ' ' << rand() << ' ' << rand() << '\n';
}

Из-за того, что randпроизводит те же самые значения, пока seed не изменяется с помощью srand, это должно дать три одинаковых числа.
например.

567 567 567

Однако, когда я запускаю эту программу, она дает мне три разных значения.
например.

6334 18467 41

Когда программа (компилируется и)запускается снова, генерируются те же три числа. Разве я не должен использовать srandдля изменения начального числа, прежде чем я начну получать другие результаты от rand? Это просто мой компилятор/реализация пытается сделать мне одолжение?

ОС:Windows XP
Компилятор :GCC 4.6.2
Библиотеки:MinGW

РЕДАКТИРОВАТЬ:Пытаясь использовать srand, я обнаружил, что это результат начального числа 1 (, которое, как я полагаю, установлено по умолчанию).

6
задан Yu Hao 1 December 2013 в 03:26
поделиться