Генерация случайных чисел и продолжение действий

0

В одном задании, которое я делаю для начинающего класса C++, я должен написать программу, которая проверяет пользователя на математических навыках. У меня две проблемы:

void addition(){

srand (50);

int result=0;
int points=0;
int counter=0;

int nbr1 = 100 % rand();
int nbr2 = 100 % rand();

cout<<nbr1<<" + "<<nbr2<<" = ";
cin>>result;

if(result == nbr1+nbr2){
    cout<<"CORRECT";
    points+=10;
    return;
}

if(result !=nbr1+nbr2){
    counter++;
    cout<<"WRONG. TRY AGAIN";
}

if (counter == 1){
    points+=5;
}


if (counter == 2){
    points+=2;
}


if (counter >= 2){
    points=0;
    cout<<" WRONG!The anwser is "<<nbr1+nbr2<<endl;
    return;
}

(одна функция в коде)

Два вопроса:

1) числа, сгенерированные программой, всегда были 110. Есть ли способ держать числа случайными (не всегда 110 :) и менее 100?

2) Как я могу продолжить процесс задавания вопросов после одной процедуры? Теперь он заканчивается сразу после ввода пользователем одного значения:

110 + 110 = 220
CORRECT Program ended with exit code: 0

Заранее спасибо!

  • 1
    Чтобы сохранить число меньше 100, вам нужно rand() %100; вместо 100 % rand();
  • 0
    Спасибо! Это помогло!
Теги:
random

2 ответа

0

Вы должны давать srand разное значение каждый раз, чтобы получить разные числа, вы можете использовать время:

#include <time.h>
srand(time(NULL));
  • 0
    Спасибо! Я забыл добавить <time.h>
0

Вы всегда используете одно и то же семя для srand, попробуйте srand(time(NULL));

Ещё вопросы

Сообщество Overcoder
Наверх
Меню