c++ - C++ 函数不会正确调用 main
问题描述
现在我确信这个问题的答案很简单。我对编码很陌生,似乎无法将函数正确地调用到主函数中。这就是我试图完成的事情:该函数应该将用户输入与另一个随机生成数字的函数进行比较,重点是将随机化和用户输入保持在两个不同的函数中。这是代码。谢谢各位!
#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;
}
解决方案
要调用函数
GuessNum()
,main()
您需要编写GuessNum(MagicNumber);
. 那int GuessNum(int MagicNumber);
是一个宣言。您需要包含
<iostream>
才能使用std::cout
.你犯了一个粗心的错误:你写
else if (guess > NumGuessed)
了两次。您在分支中存在逻辑问题。用或
guess
测试后,你已经用尽了所有的可能性,再测试没有意义。重新排列你的分支。==
<
>
NumGuessed
if (guess < 1 || guess > 100)
推荐阅读
- ios - 如何根据用户位置重新调整 SKNodes
- image - 有什么图像分割算法推荐吗?
- python - 如何将提交 ModelForm 的用户的信息传递到 ManyToMany 保存?
- python - python中的单方括号和双方括号
- visual-studio - 使用 vs 2017 的 rust 扩展为 Visual Studio 2017 配置 rustup
- python - 如何在 Python 中的 uniform_form torch 之后应用操作?
- android - 如何使按钮将特定文本添加到列表视图中
- java - 如何干净地打印代码输出?Java 帮助:扫描仪、PrintWriter、FileReader
- symfony - 扩展 fos_user 捆绑模型时出现 Doctrine 模式更新错误
- sql - 查询以增加 MS Access 中每条新记录的列值