0
這是我的項目歐拉問題編號4.爲什麼我的代碼在運行時會繼續崩潰?
迴文數讀取相同的兩種方式的代碼。由兩個兩位數字產品製成的最大回文數是9009 = 91.99。查找由兩個3位數字產品製成的最大回文數。
但是,我的代碼不會在Visual C++上編譯。它一直在說「訪問衝突」。那麼有人能告訴我爲什麼我的代碼不起作用嗎?如果我的代碼在你的編譯器上工作,它是否給出了正確的答案?
#include <iostream>
#include <cmath>
int isitapalindrome(int num);
int main (void)
{
bool pali = false;
int a, b, c, d, e = 0;
for (a = 999; a > 100; a--)
{
for (b = 999; b > 100; b--)
{
c = a*b;
pali = isitapalindrome(c);
if (pali == true)
{
c > e? c: e;
d = c;
e = c;
}
else continue;
}
}
std::cout<<d<<std::endl;
system ("pause");
return 0;
}
int isitapalindrome (int num)
{
bool isit = false;
int digits[8];
int test = num;
int i, j, palindrome = 0;
for (i = 0; test >= 0; i++)
{
digits[i] = test%10;
test = (test - test%10)/10;
}
for (j = 0; i>=j; j++)
{
palindrome += digits[j] * 10^(i-j);
}
if(palindrome = test)
{
isit = true;
}
return isit;
}
幾乎肯定訪問數組越界... –
我該如何解決它? –
你似乎認爲'^'是取冪。不是,它是按位異或。 – hammar