/***************************************************************
目的:判断一个数是不是回文数
算法思想:是将整数逆序以后形成另一个整数,判断这个两个整数是否相等
***************************************************************/
#include<stdio.h>
int fun(int x)
{
int inverse_num=0;
int r=0;
int temp = x;
while(x>0)
{
r=x%10;
inverse_num =inverse_num*10 + r;
x/=10;
}
if(temp == inverse_num)
return 1;
else
return 0;
}
int main(void)
{
int num;
puts("请输入一个数字:");
while(scanf("%d",&num) == 1)
{
if(fun(num))
{
printf("%d是回文数\n",num);
}
else
printf("%d不是回文数\n",num);
puts("\n请输入一个数字:(q to quit)");
}
return 0;
}
/****************************************************************
目的:判断一个字符串是不是回文(此程序也能判断回文数)
算法思想:字符串首尾字符相等
****************************************************************/
#include<stdio.h>
#include<string.h>
int fun(char *p)
{
int len = strlen(p)-1;
char *q = p+len;
while(p<q)
{
if(*p==*q)
{
p++;
q--;
}
else
break;
}
if(p>=q)
return 1;
else
return 0;
}
int main(void)
{
char str[80];
puts("请输入一个字符串:");
while(gets(str)!=NULL && str[0]!='\0')
{
if(fun(str))
printf("%s是回文\n",str);
else
printf("%s不是回文\n",str);
puts("\n请输入一个字符串:(empty line to quit)");
}
}