c语音编写的回文数
发布日期:2021-06-30 11:48:18 浏览次数:2 分类:技术文章

本文共 675 字,大约阅读时间需要 2 分钟。

#include 
#include
#include
int IsPalindrome(const char *cScr);void main(void){ char cStr[21]; while(1) { gets(cStr); printf("%d\n",IsPalindrome(cStr)); }}int IsPalindrome(const char *cScr){ int iLen = strlen(cScr);//预留数组首元素,栈顶从第二元素开始 int top = 1; char *cMyStack = (char *)malloc( (iLen/2+1)*sizeof(char) ); //定位对原始数组的检测索引初始位置 cMyStack[0] = iLen/2; if ( 1 == iLen%2 ) { ++cMyStack[0]; }//将原始数组的一半元素入栈for ( top=1; top<=iLen/2; top++ ){ cMyStack[top] = *(cScr+top-1);}//从栈顶开始依次匹配while ( *(cScr+cMyStack[0]) == cMyStack[--top] && cMyStack[0]++ < iLen ){} if ( 0 == top ){//是回文数 free(cMyStack); return 1;} else{//不是回文数 free(cMyStack); return 0;}}

 

转载地址:https://jackiehao.blog.csdn.net/article/details/102728384 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:CSDN-markdown编辑器使用介绍
下一篇:ssh-切换普通用户报 -bash: fork: retry: No child processes

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月16日 16时49分09秒