gpt4 book ai didi

C++ 随机数猜谜游戏错误

转载 作者:行者123 更新时间:2023-11-30 03:30:20 24 4
gpt4 key购买 nike

所以,我必须编写一个随机猜谜游戏的程序。程序需要让玩家猜一个 1-100 之间的数字。必须至少使用一种功能。如果他们太低/太高,它需要告诉玩家,让他们再试一次,或者如果他们猜对了,让他们再玩一次。

我有一些我无法弄清楚的错误。

44: 错误:'int winlose' 重新声明为不同类型的符号9: 错误:‘int winlose(int)’的先前声明44: 错误: ‘g’ 未在此范围内声明

代码

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

int winlose(int);

int main()
{
int g, n, x;

while (x!=0)
{
do
{
srand(time(NULL));
n = 1 + rand()%100;

cout<<"Welcome to the guessing game. I have a number between 1-100.
Can you guess it?"<<endl;
cout<<"Please enter your guess"<<endl;
cin>>g;

winlose(g);
} while (n!=0);

cout<<"Play again? Enter 0 for no, any other number for yes."<<endl;
cin>>x;
}
return 0;
}

int winlose(g)
{
if (g<n)
{
cout<<"Your guess is too low. Try again."<<endl;
cin>>g;
}
else if (g>n)
{
cout<<"Your guess is too high. Try again."<<endl;
cin>>g;
}
else (g=n)
{
cout<<"Congrats! You win. The number was "<<n<<endl;
n=0;
}
return g;
return n;
}

最佳答案

除了函数声明之外,你还犯了一​​些错误。函数声明必须包含每个参数的类型,所以正确的做法是:

int winlose(int g);

您不能在 else 语句中使用条件:(else (g=n))。如果前面的条件(ifelse if() 中的条件)都不满足,则 else 语句是一个包罗万象的语句。如果您只希望它在特定条件下触发,请使用另一个 else if()。您不需要在每个 if 语句的末尾都有一个 else;以 else if(){...} 结束是完全正确的。

您还需要与 '==' 而不是 '=' 进行比较。 = 是赋值运算符,g=n 会将 g 的值设置为 n。如果你想检查 g 是否等于 n,你将不得不使用 g==n

您应该在外层循环中调用 srand(),否则每次猜测后,值都会改变。

其余部分已更正,有时为了正确的性能略有更改:

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

bool winlose(int number, int givenNumber);

int main(){
int g, n, x;
bool guessed;
do {
srand(time(NULL));
n = 1 + rand()%100;
cout<<"Welcome to the guessing game. I have a number between 1-100. Can you guess it?"<<endl;
do {
cout<<"Please enter your guess"<<endl;
cin>>g;
guessed = winlose(g, n);
} while (!guessed);

cout<<"Play again? Enter 0 for no, any other number for yes."<<endl;
cin>>x;
} while (x!=0);
return 0;
}

bool winlose(int g, int n) {
if (g<n) {
cout<<"Your guess is too low. Try again."<<endl;
return false;
}
else if (g>n) {
cout<<"Your guess is too high. Try again."<<endl;
return false;
}
else {
cout<<"Congrats! You win. The number was "<<n<<endl;
return true;
}
}

关于C++ 随机数猜谜游戏错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45066655/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com