用递归的方法实现判断回文字符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语言)