Это очень конкретный случай, но я новичок в C++ и не понимаю выход этой программы, которую я написал для веб-сайта проекта euler.Scope in Loops in 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
Выходные данные показывают, что х декременты только после того, как у имеет декрементируется до 321, но затем он декременты многократно и программа не входит в секунду, а снова петли.
Я начинаю подозрительно визуального экспресс
Что вы ожидаете произойдет? Как только 'y <= 320',' y' больше никогда не увеличивается, поэтому никогда не возникает причин, по которым код вводит внутренний цикл более одного раза. – Mankarse
Это не проблема, а проблема с логикой/алгоритмом. – squiguy
Ошибка в коде, а не в компиляторе. –