C/C++

Почему два раза просит ввод с++ да я хочу именно так это сделать не ругайетсь

#include <iostream>

int user_input()
{
std::cout << "Enter your num: ";
int user_num;
std::cin >> user_num;
return user_num % 2;
}

bool isEven()
{
if (user_input() == 0)
{
return true;
}
else
{
return false;
}
}

void output()
{
if (isEven() == true)
{
std::cout << "Your num is even" << std::endl;
}
else
{
std::cout << "Your num is odd" << std::endl;
}
}

int main()
{
user_input();
output();
}
Первый раз ты явно вызываешь user_input() - и программа запрашивает ввод.
А второй раз ты вызываешь output(), которая вызывает isEven(), которая вызывает user_input() - и программа запрашивает ввод.
Николай Козлов
Николай Козлов
80 427
Лучший ответ
Ваш код запрашивает ввод пользователя дважды, потому что функция user_input() вызывается дважды: один раз в функции isEven() и еще раз в функции main(). Чтобы исправить это, вы можете вызвать функцию user_input() только один раз в функции main() и сохранить ее результат в переменной, которую затем можно передать в функцию isEven(). Вот пример исправленного кода:
 #include   

int user_input()
{
std::cout > user_num;
return user_num % 2;
}

bool isEven(int user_num)
{
if (user_num == 0)
{
return true;
}
else
{
return false;
}
}

void output(bool even)
{
if (even == true)
{
std::cout
Nill Trumper
Nill Trumper
25 860
Причина, по которой у вас два раза просит ввести число, заключается в том, что вы вызываете функцию `user_input()` дважды: один раз в `main()` и один раз в `isEven()`.

Вот исправленный код, который просит ввести число только один раз:

```cpp
#include <iostream>

int user_input()
{
std::cout << "Enter your num: ";
int user_num;
std::cin >> user_num;
return user_num;
}

bool isEven(int num)
{
return num % 2 == 0;
}

void output(bool even)
{
if (even)
{
std::cout << "Your num is even" << std::endl;
}
else
{
std::cout << "Your num is odd" << std::endl;
}
}

int main()
{
int num = user_input();
output(isEven(num));
}
```

Теперь `user_input()` только запрашивает и возвращает число, в то время как проверка на четность производится в функции `isEven()`. Функция `output()` теперь принимает булево значение, указывающее, является ли число четным или нет, и выводит соответствующее сообщение.