我正在編寫代碼來查找回文數字。我用這還學習如何編寫,這是我寫的代碼:libC++ abi.dylib:終止調用拋出異常中止陷阱:6
#include <iostream>
#include <sstream>
using namespace std;
bool IsPalindromic (int n) {
int I;
string Number; //Starting to convert integer to string
ostringstream convert;
convert << n;
Number = convert.str(); //Conversion is complete
int M = Number.length();
bool Result = true;
if (M % 2 == 0)
I = M/2;
else
I = (M - 1)/2;
for (int i = 1; i <= I; i++) {
if (Number.at(i) != Number.at(M-i+1))
Result = false;
}
return Result;
}
int main(int argc, char *argv[]) {
int num;
cout << "Enter an integer:";
cin >> num;
cout << IsPalindromic(num) << endl;
return 0;
}
但是當我嘗試運行它,然後輸入一個整數作爲輸入,我得到以下錯誤:
libc++abi.dylib: terminate called throwing an exception
Abort trap: 6
我在代碼的邏輯中找不到任何錯誤。你能幫我找出問題嗎? 我使用G ++在Mac OSX 10.8.4
請注意,您不需要所有'if(M%2 == 0)'業務。簡單的'M/2'將爲奇數和偶數'M'完成,因爲整數除法忽略餘數。此外,您的支票應該從索引'0'開始,而不是'1'。 – juanchopanza