C/C++

Почему код завершается? C++

 #include  
using namespace std;
void main(){
system("chcp 1251 > nul");
int num1, num2;
int otvet;
int score = 0;
srand(2);
int g;
start:
g = rand() % 5;
cout
KR
Krghjerg Rbhsdrtj
270
А что удивляет? g выбирается случайным образом (1 раз) вызывается логический оператор g==1 и программа завершается)
Если g выбралось не равным 1 то весь код в if (п==1) пропустится, а дальше только конец программы. А так как rand() - псевдослучаен, то результат будет повторяться при каждом новом запуске. И опять не будет равен 1.
Пётр Михеев
Пётр Михеев
51 417
Лучший ответ
srand(2); и srand(5); означают, что ты при КАЖДОМ запуске своего кода будешь получать совершенно ИДЕНТИЧНЫЕ значения rand(). И т.к. значение g = rand() % 5 не равно 1, код внутри if (g == 1) { ... } не выполняется.
Krghjerg Rbhsdrtj А как сделать случайные числа?
 #include  
#include
#include
#include
#include
#include

using namespace std;

int addition(int a, int b) { return a + b; }

int subtraction(int a, int b) { return a - b; }

int multiplication(int a, int b) { return a * b; }

int task(const char* op, const function& fn, const int complexity) {
static const auto ten = 10;
const auto n = static_cast(pow(10, complexity));
const auto m = n * 10 - n;
const auto a = n + rand() % m;
const auto b = n + rand() % m;
cout
Andrey Muhin
Andrey Muhin
85 524
Это что за фокусы - srand(2); и т.п.? g у тебя равно 0.
UA
Umidbek Abdullayev
63 316
Если g не равно единице, то код просто завершается, потому что нет других инструкций для выполнения. Чтобы исправить это, вы можете добавить дополнительные блоки if или else if, чтобы обработать другие возможные значения g. Например:
 if (g == 1) { 
// ваш код здесь
} else if (g == 2) {
// ваш код здесь
} else if (g == 3) {
// ваш код здесь
} else if (g == 4) {
// ваш код здесь
}