数据结构习题:编写判断一个字符序列是否是回文的函数。非常急,多谢!

这道题是,《数据结构-使用C语言》第四版,朱战立编的。84页习题3-18。
编写判断一个字符序列是否是回文的函数。回文是指一个字符序列以中间字符为基准,两边字符完全相同,如字符序列“ABCDEDCBA”就是回文,而字符序列“ABCDEDBAC”不是回文。
明天就要交啦!很急的!希望大家帮帮忙!谢谢!

#include <stdio.h>

#include <string.h>

void main()

{

 char word[20];

 int i,len,flag=1;

 gets(word);

 len=strlen(word)-1;

 for(i=0;i<=len/2;i++)

  if(word[i]!=word[len-1])

  {

   flag=0;

   break;

  }

  if(flag)

   printf("Word %s  is 回文\n",word);

  else

   printf("%s不是回文\n",word);

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-05
//首先我认为回文不一定是奇数个;也有可能是偶数个;只要这个字符串
//正读跟反读都一样 那它就是回文 所以不应该把字符串的个数当成是判断回文串的
//一个条件。
#include <stdio.h>
#include <string.h>
#include <conio.h>

bool huiWen(const char *p);
int main()
{
char test[225];
gets(test);
if(huiWen(test))
{
printf("是回文!\n");
}
else
{
printf("不是回文!\n");
}
getch();
return 0;
}
bool huiWen(const char *p)
{
int i=0,n=strlen(p);
while(p[i]==p[n-i-1] && i<n-i-1) //只要相等且还未相遇则继续循环
{
i++;
}
return ((i<n-i-1)? false:true); //若i<n-i-1表示中途遇到不相等的字符而退出循环
}本回答被提问者和网友采纳
第2个回答  2011-01-06
判断是不是奇数个字符,然后从字符串第一个字符开始判断到中间能不能在字符串相应的位置找到相同的字符。
相似回答