用c语言如何实现判断回文?

Python017

用c语言如何实现判断回文?,第1张

下面介绍了几种判断回文的方法:

你提问的第一个地方,比如你输入了个5个字符的字符串 ,abcba    先判断第一个和最后一个是否相同 ,再判断第二个和倒数第二个 。

如果相等程序正常执行 ,如果不相等 ,break就跳出循环  ,你提问的第二个地方就是i 如果等于 len/2说明 上边循环式正常退出 。

那就是说前后一一对比都相同 ,是回文数  ,不等于len/2说明是由break退出导致,既前边和后边某一位不相同

若输入 abbci=0str[0]='a'  str[4-1-0]='c'  执行break跳出for循环循环结束 i=0  所以判断不是回文若输入abbai=0str[0]='a'  str[4-1-0]='a' i=1str[1]='b'  str[4-1-1]='b'i=2for循环条件不满足i

这还有另外一种方法,即include "stdio.h" main() { char str[50]int p,i,jprintf("Input:")scanf("%s",str)printf("Input the string is:%s\n",str)p=strlen(str)for(i=0,j=p-1i=j) printf("huiwen")else printf("not a huiwen")}

【错误分析】

1、把函数huiwen()中的变量“s”都改成“ps”,写代码要细心哦~

2、判断是否回文的时候,只要有一个对应不等,就无需判断啦~(显然此时不是回文)

【注】只在你的代码上小小修改了一下,就可以啦~

望采纳哦~

有问题再问哦~

o(∩_∩)o

#include

<stdio.h>

#include

<string.h>

int

huiwen(char

*ps)

int

main()

{

char

s[100]

int

flag

gets(s)

flag=huiwen(s)

if(flag)

printf("YES!\n")

else

printf("NO!\n")

return

0

}

int

huiwen(char

*ps)

{

int

i,j,z=1

j=strlen(ps)-1

for(i=0i<ji++){

if(ps[i]!=ps[j]){

z=0return

z

}

j--

}

return

z

}

所谓回文数,就是说一个数字从左边读和从右边读的结果是一模一样的,比如12321。

以下是判断一个数是否为回文数的代码:

大致思路就是将一个数反着排列一遍,如果和原先的数一样,那么就是回文数。这个排列过程用到了余数和整除。比如986,经过排列后为689,就不是回文数。

扩展资料:

判断一个字符串是否为回文: