这个程序是判断是不是回文的。可是我运行时,不管输入的是什么,判断结果都是回文。

#ifdef__BORLANDC__//suppressthewarningmessageaboutcomparingsignedandunsignedvalues#pr... #ifdef __BORLANDC__
// suppress the warning message about comparing signed and unsigned values
#pragma warn -8012
#endif // __BORLANDC__

#include <iostream>
#include <queue>
#include <stack>
#include <string>

#ifdef _MSC_VER
// compensates for VC++ 6.0 bug in getline() from <string>
#include "d_util.h"
#endif // _MSC_VER

using namespace std;

int main()
{
string text;
char ch;
// q records characters in order of occurrence
queue<char> q;
// s records characters in reverse order of occurrence
stack<char> s;
int i;

cout << "Enter a line of text in lowercase:" << endl;
getline(cin, text);

// cycle through the text
for (i=0;i < text.length();i++)
{
ch = text[i];

// if ch is a letter, push it on the queue and the stack
//每个字母分别加入到队列和栈中
if (ch >= 'a' && ch <= 'z')
{

q.push(ch);
s.push(ch);
}
}

// compare the front of the queue with the top
// of the stack until both are empty or we find
// two characters that are not equal
//比较队首元素和栈顶元素,直到队列和堆栈都为空,或者发现两者的值不相等
while (!q.empty())
{
if (q.front() != s.top())
break;
q.pop();
s.pop();
}

// if the queue is empty, we have a palindrome
if (!q.empty())
cout << text << " is a palindrome" << endl;
else
cout << text << " is not a palindrome" << endl;

return 0;
}

/*
Run 1:

Enter a line of text in lowercase:
go hang a salami i'm a lasagna hog
go hang a salami i'm a lasagna hog is a palindrome

Run 2:

Enter a line of text in lowercase:
abcdefdcba
abcdefdcba is not a palindrome
*/
展开
 我来答
滨崎步最爱
2011-04-05 · TA获得超过665个赞
知道小有建树答主
回答量:705
采纳率:0%
帮助的人:458万
展开全部
因为这个程序判断的是字符串(只包含小写字符)是不是对称的 比如输入abc def fedcba
is not a palindrome
对于随手输入的字符串一般情况下都是
is a palindrome
还有我看把if判断的!去掉
xr3ykvjur
2011-04-05 · TA获得超过269个赞
知道答主
回答量:539
采纳率:100%
帮助的人:0
展开全部
将主函数中的如下程序段:

while(s[d.top])
{

if ((c=s[d.top])!=' ')
push( &d,c);
else d.top++;

}

改为如下形式:

for (i = 0; s[i]; i++)
if (s[i]!=' ') push(&d,s[i]);
追问
我的主函数哪里有
while(s[d.top])
{

if ((c=s[d.top])!=' ')
push( &d,c);
else d.top++;

}
这一段???
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式