第一次发帖!这是我学习“高级 C 和 C++”的第二个学期,因此非常感谢任何帮助。我已经搜索了尽可能多的 stackoverflow 和其他一些资源,试图帮助我理解我在使用这些逻辑上无能的代码做什么(或不做什么)。
该程序的目标是识别用户给出的“数字”是否是回文。听起来很简单吧?!呃......这就是我一直坚持的:
#include <iostream>
using std::cout;
using std::cin;
#include <string>
using std::string;
#include <cstdlib>
int main()
{
//variable declarations
string buffer;
//user input
cout << "Enter a number to see if it is a palindrome[Q to quit]: ";
getline(cin, buffer);
//looooop
while(buffer != "Q" && buffer !="q")
{
int userNum, length, sum = 0, temp;
userNum = atoi(buffer.c_str());
for(temp = userNum; userNum !=0; userNum=userNum/10)
{
length = userNum % 10;
sum = sum*10+length;
}
if(temp==sum)
cout << temp << " is a palindrome!!\n\n";
else
cout << buffer << " is NOT a palindrome!\n\n";
cout << "Enter a number to see if it is a palindrome[Q to quit]: ";
getline(cin, buffer);
}
}
当输入“010”或“400”时出现问题。在这种情况下,“400”本质上是“00400”,两者都应该被视为回文。