Случайные числа srand

Мне нужно генерировать случайное число для одной и той же переменной несколько раз в диапазоне 1 - 100. В плюсах есть ф. srand, но она генерирует случайное число только в начале программы. Из-за этого в переменной находится одно и то же число постоянно. Код:

    int main()
    {
        srand(time(0));
        int chance = rand() % 100;
        std::cout << chance << std::endl;
        std::cout << chance << std::endl;
    }

А мне нужно, чтобы после каждого вывода генерировалось другое число.


Ответы (2 шт):

Автор решения: Harry

Вы что-то путаете. Итак, srand(time(0)) нужна для того, чтобы при каждом новом запуске программы последовательность случайных чисел была иной. Без него последовательность будет одинакова при всех выполнениях программы (что, кстати, полезно при отладке).

rand()

при каждом вызове выводит очередное случайное число. У вас оно сохранено в chance и больше вы эту функцию не вызываете. А зря :)

Попробуйте так:

int main()
{
    srand(time(0));
    int chance = rand() % 100;
    std::cout << chance << std::endl;
    chance = rand() % 100;
    std::cout << chance << std::endl;
}
→ Ссылка
Автор решения: ТарасПрогер
#include <iostream>
#include <ctime>

int main()
{
    srand(time(0));
    int chance = rand() % 100;
    std::cout << (chance = rand() % 100) << std::endl;
    std::cout << (chance = rand() % 100) << std::endl;
}

А кстати, можно напрямую в cout'e обновлять значение! Не забывайте про скобки, чтоб соблюдался приоритет!

→ Ссылка