Почему rand () + rand () выдает отрицательные числа?

Я заметил чтоrand() Функция библиотеки, когда она вызывается только один раз в цикле, почти всегда выдает положительные числа.

for (i = 0; i < 100; i++) {
    printf("%d\n", rand());
}

Но когда я добавлю дваrand() звонки, сгенерированные номера теперь имеют больше отрицательных чисел.

for (i = 0; i < 100; i++) {
    printf("%d = %d\n", rand(), (rand() + rand()));
}

Может кто-нибудь объяснить, почему я вижу отрицательные числа во втором случае?

PS: я инициализирую семя перед циклом какsrand(time(NULL)).

Ответы на вопрос(8)

Ваш ответ на вопрос