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

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-06-01
#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;
}
相似回答