这是一个非常特殊的情况,但我是C++的新手,并且不理解我为项目euler网站编写的这个程序的输出。循环中的C++范围
int x = 999;
int y = 999;
string result;
while (x > 320)
{
while(y > 320)
{
int inttoconvert = (x*y);
cout<<inttoconvert<<"<-----This is product"<<endl;
string result;
ostringstream convert;
convert << inttoconvert;
result = convert.str();
if (result[0] == result[5] && result[1] == result[4] && result[2] == result[3])
{
cout<<"The largest palindrome of 2 3-digit numbers is "<<result<<endl;
y = 0;
x = 0;
}
else
{
cout<<y<<endl;
y--;
}
}//end while
cout<<"this is x---->"<<x<<endl;
x--;
}//end while
输出显示X减Y已递减到321只后,但随后一再递减,程序不进入第二而再次循环。
我开始变得疑神疑鬼关于视觉表达
你期望发生的?一旦'y <= 320','y'永远不会再次增加,所以代码不会有任何理由多次进入内部循环。 – Mankarse
这不是一个范围界定问题,而是一个逻辑/算法问题。 – squiguy
错误在于你的代码,而不是编译器。 –