方法一:地址比较法
1.定义一个数组a[n];
2.定义两个循环变量i,j
3.分别从头和尾向中间进行比较
4.当a[i]!=a[j]时结束循环
5.如果地址i<j,则说明循环没有进行到底,即循环时遇到不同字符,判断不是回文字符
如果地址i>j,则说明循环进行到底,即循环时两边字符相同,判断是回文字符
代码:
#include<stdio.h>
int main()
{
char a[10];
gets(a);
int i,j;
int n;
n=strlen(a);
for(i=0,j=n-1; i<j; i++,j--)
{
if(a[i]!=a[j])
{
break;
}
}
if(i<j)
{
printf("no");
}
else
{
printf("yes");
}
return 0;
}
方法二:标志变量法
1.定义一个数组a[n];
2.定义一个标准变量flag,赋值为1;
2.定义两个循环变量i,j
3.分别从头和尾向中间进行比较
4.当a[i]!=a[j]时结束循环,标志变量的值赋值为0
5.如果flag=0,则说明循环时遇到不同字符,判断不是回文字符
如果flag=1,则说明循环时两边字符相同,判断是回文字符
代码:
#include<stdio.h>
int main()
{
char a[10];//根据字符串长度定义
gets(a);
int i,j;
int n;
n=strlen(a);
int flag=1;
for(i=0,j=n-1; i<j; i++,j--)
{
if(a[i]!=a[j])
{
flag=0;
break;
}
}
if(flag==0)
{
printf("no");
}
else
{
printf("yes");
}
return 0;
}