用递归的方法实现判断回文字符c语言

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用递归的方法实现判断回文字符c语言相关的知识,希望对你有一定的参考价值。

#include<stdio.h>

#include<string.h>

int hw(char *s,int a,int b)

return s[a]==s[b]&&(a>=b-2||a<b-2&&hw(s,a+1,b-1));

int main()

char s[300];

  gets(s);

  printf("%s%s是回文。\\n",s,hw(s,0,strlen(s)-1)?"":"不");

  return 0;

参考技术A #include <stdio.h>
#include <string.h>
int hw(char *p, char *end)


if (p == end)
return 0;
if (*p != *end)
return 1;
hw(++p, --end);

int main(int argc, char const *argv[])

char a[100];

scanf("%s", a);
if (0 == hw(a, a + strlen(a) - 1))
printf("%s是回文\n", a);
else
printf("%s不是回文\n", a);

return 0;

用递归判断字符串是不是为回文串(C语言) 用递归判断字符串是不是为回文串(C语言)

用递归来写程序,递归我不会写啊,那位大牛能帮帮忙,感谢感谢!

参考技术A #include <stdio.h>
#define SIZE 50
int isPalindrome(char str[]);
int elementSize=0;
static int i=0;
int main()

int j=0,result;
char element,str[SIZE];
printf("请输入字符串,以回车结束:\n");
/*以下用循环结构读入字符数组的元素,防止了因字符串中含有空格而不能全部读入的情况*/
scanf("%c",&element);
while(element!='\n')

str[j]=element;
elementSize++;//记录了数组中已有元素的个数
j++;
scanf("%c",&element);


if(isPalindrome(str))
printf("该字符串是回文字符串\n");
else
printf("该字符串不是回文字符串\n");

// system("pause");
return 0;

/*函数功能:判断字符串是否为回文串*/
int isPalindrome(char str[])

/*把数组元素前后对应比较,即第一个元素与最后一个元素比较是否相等,依此类推*/
if(i>=elementSize-i-1)//说明是回文串
return 1;

else if(str[i]==str[elementSize-i-1])

i++;//i为全局静态变量
isPalindrome(str);


else //出现不相等的情况,说明不是回文串,返回0
return 0;
本回答被提问者采纳

以上是关于用递归的方法实现判断回文字符c语言的主要内容,如果未能解决你的问题,请参考以下文章

用递归判断字符串是不是为回文串(C语言) 用递归判断字符串是不是为回文串(C语言)

c语言,利用递归判断回文

C语言:编写一个测试一个串是不是为回文的递归函数,是回文,返回1;不是,返回0。

用c语言实现字符串的回文,有要求如下:

C语言 判断回文字符串

C语言怎么判断一个数是不是是回文数?