回文数的判断
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;
}