(1)
#include<iostream>
using namespace std;
int main()
{
int k=0;
int j;
char b[20];
cout<<"please input an number: "<<endl;
cin>>b;
for(j=0;j<20&&b[j]!='\0' ;j++); //字符串有一个结束符,判断它可知是否结束
{
k=j;
}
for(int m=0;m<k;m++)
{
if(b[m]!=b[k-m-1])
{
cout<<"这不是回文数!"<<endl;
return -1;//跳出循环
} //不能判断一个就确定是回文
}
//检查完毕,是回文才会到这里
cout<<"这是回文数!"<<endl;
return 0;
}
(2)
#include<iostream>
#include<string.h>//这个头文件可以使用strlen函数
using namespace std;
int main()
{
int k=0;
int m,n;
char b[20];
cout<<"please input an number: "<<endl;
cin>>b;
for (m=0,n=strlen(b) - 1; (m!=n) && (m+1!=n); m++, n--)
{
if (b[m] != b[n])
{
cout<<"这不是回文数!"<<endl;
return -1;//跳出循环
}//不能判断一个就确定是回文
}
//检查完毕,是回文才会到这里
cout<<"这是回文数!"<<endl;
return 0;
}
(3)运用指针
#include<iostream>
#include<string.h>//这个头文件可以使用strlen函数
using namespace std;
int HuiWen(char*);
int main()
{
int k=0;
int m,n;
char b[20];
cout<<"please input an number: "<<endl;
cin>>b;
if(HuiWen(b))
{
cout<<"这是回文数";
}else
{
cout<<"这不是回文数";
}
return 0;
}
int HuiWen(char* s)
{
if(NULL == s)
{
return 0;
}
char *head=s;//指向第一个字符
char *tail=s+strlen(s)-1;//指向最后一个字符
while(true)
{
if(head >= tail)return 1;
if(*head == *tail)
{
head++;
tail--;
}
else
{
return 0;
}
}
}