使用数组的C palindrome程序
c++ palindrome program using array
我对我的palindrome程序有问题。我需要使用数组,并展示不用.push或.pop的推动和弹出率如何工作。我遇到的麻烦是,当我输入一个三个字母的单词时,它会说是的,这是一个回文,但是如果我输入一个4个或更多字符的单词,即使是四个或更多字符,也不会说这不是一个。前任。皮艇。看不到我出错的地方。
#include <iostream>
#include <string>
using namespace std;
int main()
{
char original[13];
int stkptr=-1;
int x = strlen(original)-1;
cout <<"Enter a character"<<endl;
for( ++stkptr ; stkptr<13;stkptr++)
//store user input into the array
{
cin>>original[stkptr];
if(original[stkptr]=='0')
break;
cout<<original[stkptr]<<" Stack pointer is: "<<stkptr<<endl;
}
//POP
for (--stkptr; stkptr>=0;stkptr--)
cout<<original[stkptr]<<" Stack pointer is: "<<stkptr<<endl;
for(int i = 0; i <= x; i++)
{
if (original[i] == original[x-i])
{
continue;
}
else
{
cout<<"nNot a palidromen"<<endl;
system("pause");
return 0;
}
}
cout << "nIndeed Palidromen"<<endl;
system("pause");
return 0;
}
尽管您过于复杂逻辑,但我会说出当前代码是什么。
您出错了x
。当没有"字符串"时,您将其初始化为字符串长度(另外,您的char数组应该在末端具有