当前位置:首页 » 编程语言 » c语言回文串

c语言回文串

发布时间: 2025-01-20 22:43:09

⑴ C语言判断回文串

下面介绍了几种判断回文的方法:
你提问的第一个地方,比如你输入了个5个字符的字符串 ,abcba 先判断第一个和最后一个是否相同 ,再判断第二个和倒数第二个 。
如果相等程序正常执行 ,如果不相等 ,break就跳出循环 ,你提问的第二个地方就是i 如果等于 len/2说明 上边循环式正常退出 。那就是说前后一一对比都相同 ,是回文数 ,不等于len/2说明是由break退出导致,既前边和后边某一位不相同
若输入 abbci=0str[0]='a' str[4-1-0]='c' 执行break;跳出for循环循环结束 i=0 所以判断不是回文若输入ab=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,j; printf("Input:"); scanf("%s",str); printf("Input the string is:%s\n",str); p=strlen(str); for(i=0,j=p-1;i=j) printf("huiwen"); else printf("not a huiwen"); }

⑵ 用递归判断字符串是否为回文串(C语言) 用递归判断字符串是否为回文串(C语言)

#include <stdio.h>
#define SIZE 50
int isPalindrome(char str[]);
int elementSize=0;
static int i=0;
int main()
{
int j=0,result;
char element,str[SIZE];
printf("请输入字符串,以回车结束:\n");
/*以下用循环结构读入字符数组的元素,防止了因字符串中含有空格而不能全部读入的情况*/
scanf("%c",&element);
while(element!='\n')
{
str[j]=element;
elementSize++;//记录了数组中已有元素的个数
j++;
scanf("%c",&element);
}

if(isPalindrome(str))
printf("该字符串是回文字符串\n");
else
printf("该字符串不是回文字符串\n");

// system("pause");
return 0;
}
/*函数功能:判断字符串是否为回文串*/
int isPalindrome(char str[])
{
/*把数组元素前后对应比较,即第一个元素与最后一个元素比较是否相等,依此类推*/
if(i>=elementSize-i-1)//说明是回文串
return 1;

else if(str[i]==str[elementSize-i-1])
{
i++;//i为全局静态变量
isPalindrome(str);
}

else //出现不相等的情况,说明不是回文串,返回0
return 0;
}

热点内容
资本论中央编译局 发布:2025-05-13 19:21:50 浏览:132
python路径是否存在 发布:2025-05-13 19:08:38 浏览:570
保时捷卡宴哪个配置比较好 发布:2025-05-13 19:00:08 浏览:725
c语言负数运算 发布:2025-05-13 18:45:21 浏览:428
太空杀电脑版连接不到服务器 发布:2025-05-13 18:40:19 浏览:457
同样的配置为什么跑分不同 发布:2025-05-13 18:39:06 浏览:278
获取linuxcpu序列号 发布:2025-05-13 18:36:35 浏览:738
appleid为什么连接服务器出现问题 发布:2025-05-13 18:17:37 浏览:971
书翁怎么配置 发布:2025-05-13 18:17:36 浏览:911
云数据库mongodb 发布:2025-05-13 18:16:12 浏览:774