Как сделать чтобы при каждом вызове rand() выдавалось другое число. C++

Я не давно начал изучать С++. У меня всё было хорошо пока я не наткнулся на проблему, которая описана в заголовке этого вопроса. Я использовал srand(time(NULL)), но он не помог, а другого ответа в инете я не нашёл. Код:

#include <iostream>//базовое
#include <stdlib.h>/*что-то страшное и непонятное, которое походу добавляет NULL */
#include <unistd.h>// time
#include <ctime>// random
using namespace std;
int e = 0;// счётчик ходов
int c = 1;// ответ на ''будешь ещё играть''
int b;// вводимое число
void ds(){
  cin >> b;
  e += 1;
  cout<<e;
}
void ssd(){
  cout<<"Введи число, которое по твоему мнению я загадал.(0-100)";
}
int main() {
  srand(time(NULL));
  int a = rand() % 100 + 1;
  ssd();
  ds();
  while(c == 1){
    if(b == a){
      cout<<"Ты угадал! Читер!\n";
      sleep(3);
      cout<<"Ещё? (1 - Да)(2 - Нет)\n";
      cin >> c;
      if(c==1){
        e = 0;
        int a = rand() % 100 + 1;
        ssd();
        ds();
      }
    }
    if(b != a){
      if(b < a){
        cout<<"Твоё число меньше моего. Попробуй ещё\n";
        ssd();
        ds();
      }
      if(b > a) {
        cout<<"Твоё число больше моего. Попробуй ещё\n";
        ssd();
        ds();
      }
    }
  }
  return 0;
  }

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

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

функция srand(time(NULL)); должна вызываться один раз в Вашем приложении. Всего один раз.

→ Ссылка