1 #include <stdio.h>
2 int palind(char str[],int k, int i)/*自定义函数检测是否为回文字符串*/
3 {
4 if(str[k]==str[i-k]&&k==0)/*递归结束条件*/
5 return 1;
6 else if(str[k]==str[i-k])/*判断相对应的两个字符是否相等*/
7 palind(str,k-1,i); /*递归调用*/
8 else
9 return 0;
10 }
11
12 main()
13 {
14 int i=0,n=0;/*i记录字符个数,n是函数返回值*/
15 char ch,str[20];
16 printf("\nplease input string:\n");
17 while ((ch=getchar())!='\n')
18 {
19 str[i]=ch;
20 i++;
21 }
22 if(i%2==0)/*当字符串中字符个数为偶数时*/
23 n=palind(str,(i/2),i-1);
24 else
25 n=palind(str,(i/2-1),i-1);/*当字符串中字符个数为奇数时*/
26 if(n==0)
27 printf("not palindrome");/*当n为0说明不是回文数,否则是回文数*/
28 else
29 printf("palindrome");
30 getch();
31 }