代码改变世界

回文数的判断

2013-05-20 17:19  夏洛克·福尔摩斯  阅读(335)  评论(0编辑  收藏  举报

 

源程序代码如下:

//回文判定函数,回文数输出1,非回文数输出0

 

#include<stdio.h>

#include<string.h>

#define MAX 100 //数组最大值

int Palindrome(char *string)

{

 

       char *p1=string;//定义p1指向字符串首端

       int i=strlen(string);//给定字符串的实际长度

   if(1==i)

    return 1;

       int d=0;

       char *p2=p1+i-1;//定义p2指向字符串的末端

       while(*p1==*p2)//首尾呼应,看是否相等

       {

                     p1++;//首前进,尾后退

                     p2--;

                     d++;

                     if(*p1!=*p2) //有一对不同,则返回0

                            return 0;

                     if(d==i/2) //比较到中间,则是回文数,结束返回1

                            return 1;

       }

       return 0;//不同返回0

}

 

int main(int argc,char **argv)

{

       int i;

       char string[MAX];

       printf("please input the string:");

       scanf("%s",string);

       i=Palindrome(string);

       printf("%d\n",i);

       return 0;

}