gpt4 book ai didi

c++ - 如果语句在不需要时运行

转载 作者:行者123 更新时间:2023-11-28 05:09:50 26 4
gpt4 key购买 nike

我需要有关 if 语句的帮助。当有一个完美的平方数或两位数时,Tt 第一次工作,但在第一次之后它也对其他数字继续这样做,有没有办法避免这种情况发生?

谢谢

#include<iostream>
#include<time.h>
#include<stdlib.h>
#include<math.h>

using namespace std;

int dice()
{

return rand()%6+1;
}


string check(int tempspot, string &message)
{

if(tempspot == 11 || tempspot == 22 || tempspot == 33 || tempspot == 44 || tempspot == 55 || tempspot == 66 || tempspot == 77 || tempspot == 88 || tempspot == 99) {

message = "go to jail";
return message;
}

if(sqrt(tempspot) * sqrt(tempspot) == tempspot) {
message = "perfect square";
return message;
}
else
return "";



}

int main()
{

int sum=0;
string message;
srand(time(NULL));




cout.precision(ios::right);
cout<<"Rolls ";
cout.precision(ios::left);
cout.width(10);
cout<<"Temp-Spot";
cout.precision(ios::right);
cout.width(10);
cout<<"Prize";
cout.width(10);
cout<<"Message";


do {


cout<<"\n"<<dice();
cout.precision(ios::left);


sum +=dice();
cout.width(10);
cout<<sum<<"\n";
cout.width(25);

check(sum, message);

if(message == "perfect square") {
cout<<"+10";
sum += 10;
}

else if(message == "go to jail") {
cout<<"10";
sum = 10;
}


cout.width(20);
cout<<message;

}while(sum<=100);





return 0;




}

最佳答案

问题出在您的检查功能中。

if(sqrt(tempspot) * sqrt(tempspot) == tempspot) 始终为真
因此,当不满足等于 11,22,... 的条件时,程序将始终返回完美的平方。

关于c++ - 如果语句在不需要时运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43747591/

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