所以我是c ++编程的初学者,我在网上遇到了一些问题。 我必须计算从999到100的所有数字乘积(Eg.999 * 999,999 * 998 ... 800 * 800,800 * 799 ......,100 * 100)。我可以轻松打印出这些产品,但当我尝试将这些值传递给函数时,它们无法正常工作。 你能看一下下面的代码并指出任何错误吗? 我认为它与缓冲区有关,但我不知道如何解决这个问题。感谢。
#include <iostream>
using namespace std;
unsigned long int num,rev,temp,rem = 0,reversed = 0;
int ispalin(unsigned long int n)
{
temp=n;
while(temp!=0)
{
rem = temp%10;
reversed = reversed*10 + rem;
temp/=10;
}
if(reversed == n)
{
return 1;
}
return 0;
}
int main()
{
int maxi = 0;
for (int i =999 ; i >= 100;i--)
{
for(int j = i;j >= 100; j--)
{
rev = ispalin(i*j);
if (rev == 1)
{
if(i*j > maxi)
{
maxi = i*j;
}
}
}
}
cout<<maxi<<" This is max"<<endl;
}
答案 0 :(得分:1)
reversed
必须重置为零。最好的方法是使reversed
(和其他人)成为ispalin
的本地变量。