C++ C++;如果else不能给出正确的结果,则进行随机搜索和编码

C++ C++;如果else不能给出正确的结果,则进行随机搜索和编码,c++,C++,我没有收到对我的代码的正确响应。当我输入正确的数字时,它应该给出“极好的”;但是,它总是输出“不正确”-请建议 #include <iostream> #include <ctime> using namespace std; int guess() { int x = 0; x = 1 + rand() % 1000; return x; } int main() { int input = 0; srand( time( 0

我没有收到对我的代码的正确响应。当我输入正确的数字时,它应该给出“极好的”;但是,它总是输出“不正确”-请建议

#include <iostream>
#include <ctime>
using namespace std;

int guess()
{
    int x = 0;
    x = 1 + rand() % 1000;
    return x;
}

int main()
{
    int input = 0;
    srand( time( 0 ) );
    cout << guess() << endl;
    cout << "I have a number between 1 and 1000. " << endl;
    cout << "Can you guess my number? " << endl;
    cout << "Please type your first guess. " << endl;
    cin >> input;

    if (guess() == input)
        cout << "Excellent! You guessed the number! " << endl;
    else
        cout << "Incorrect! " << endl;

    system ("pause");
    return 0;
}
#包括
#包括
使用名称空间std;
int guess()
{
int x=0;
x=1+rand()%1000;
返回x;
}
int main()
{
int输入=0;
srand(时间(0));

cout您调用了两次函数
guess()
,因此每次运行时它可能会给您不同的值。您必须存储该值,然后将其与原始值进行比较。

这并不能解决问题,但要养成用有意义的值初始化对象的习惯,而不是初始化并立即覆盖该初始化。在这种情况下,这意味着更改g
int x=0;x=1+rand()%1000;
int x=1+rand()%1000;
(我个人甚至会在这里使用一个变量:
返回1+rand()%1000;
,但这更像是一种风格)几年前,我有幸在一个编码标准中偶然发现了一条奇怪的规则:返回语句中没有算术。几年前,一位程序员发现编译器中有一个错误,在返回语句中生成了64位数学的错误汇编。编译器供应商对修复这个错误不感兴趣,b但是他们确实在下一个版本中修复了它,开发团队不能仅仅转储编译器并使用另一个编译器,因此管理修复被附加到代码审查上。直到今天,出于习惯,我很少在return语句中做任何有意义的事。