Функция C ++ не будет правильно вызывать main - PullRequest
0 голосов
/ 10 октября 2019

Теперь я уверен, что ответ на этот вопрос довольно прост. Я довольно новичок в кодировании и, похоже, не могу правильно вызывать функцию в основной функции. Вот что я пытаюсь сделать: функция должна сравнивать пользовательский ввод с другой функцией, которая случайным образом генерирует число, и цель состоит в том, чтобы сохранить рандомизацию и пользовательский ввод в двух разных функциях. Вот кодСпасибо, ребята!

#include <random>
#include <string>
using namespace std;

std::random_device seed;
std::mt19937 mersenneTwister(seed());

int RandomInt(int min, int max);
int GuessNum(int NumGuessed);

int main() 
{
    int MagicNumber = RandomInt(1, 100);
    int GuessNum(int MagicNumber);







}
int RandomInt(int min, int max)
{
    std::uniform_int_distribution<int> distribution(min, max);
    return distribution(mersenneTwister);
}
int GuessNum(int NumGuessed)
// supposed to ask for user input in main?
{
    int guess = 0;
    cout << "Guess what number did the computer generate\n";
    cin >> guess;

    if (guess == NumGuessed)
    {
        cout << "You win\n";

    }

    else if (guess > NumGuessed)
    {
        cout << "Higher\n";

    }

    else if (guess > NumGuessed)
    {
        cout << "Lower\n";

    }

    else if (guess < 1 || guess > 100) {

        cout << "invalid input\n";

    }
    return 0;
}

Ответы [ 2 ]

1 голос
/ 10 октября 2019
int MagicNumber = RandomInt(1, 100);

Вызывает RandomInt, в то время как

int GuessNum(int MagicNumber); 

Объявляет функцию в основной функции. Вам нужно вызвать его с помощью:

int res = GuessNum(MagicNumber);
0 голосов
/ 10 октября 2019
  1. Для вызова функции GuessNum() в main() необходимо написать GuessNum(MagicNumber); . Это int GuessNum(int MagicNumber); является декларацией.

  2. Вам необходимо включить <iostream>, чтобы использовать std::cout.

  3. Вы сделалинеосторожная ошибка: вы дважды написали else if (guess > NumGuessed).

  4. У вас логическая проблема в ветвлении. После того, как guess проверено на == < или > с NumGuessed, вы исчерпали все возможности и бессмысленно проверять if (guess < 1 || guess > 100). Перестройте свои ветви.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...