Как сделать чтобы при каждом вызове 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)); должна вызываться один раз в Вашем приложении. Всего один раз.