原题链接:回文判断
解题思路:
回文数:是从左到右读和从右到左读都一样的数字。
思路:既然题目要求使用字符串来解决,无非就是字符串的比较问题。先使用一个for循环倒着遍历,倒着存入一个新字符串数组,使用string.h库里面的函数strcmp()函数进行比较,如果返回值等于0,表示两个字符串一样,反之不一样。
踩坑经过:
这一题好麻烦啊,没想到C语言网上的简单题竟然是力扣上的第9题进阶题。刚开始我想用双层for循环,一个从头一个从尾开始遍历,如果一样就返回YES,反之返回NO;结果答案错误67%,不知道为什么(哪位大佬知道为什么的话,请帮我解答一下,谢谢)。于是我就换了一种思路,用字符串比较的方法
注意事项:
记得头文件要引入string.h,不然后面的函数调用不了。函数讲解网站:C 库函数 – strcmp() | 菜鸟教程 (runoob.com)
参考代码:
#include <stdio.h> #include <string.h> int main() { char str[10000],check_str[10000];//两个字符串数组最后用来比较 scanf("%s",str);//不用加& int len = strlen(str),count = 0;//len表示字符串数组的个数,count用来表示check_str数组的下标 for(int i = len - 1;i >= 0;i--)//把输入的数字从右往左存入新字符串数组,紧扣回文数定义 { check_str[count] = str[i]; count++; } if(strcmp(str,check_str) == 0)//strcmp用法,相等返回0,否则返回小于0或者大于0的数 printf("YES"); else printf("NO"); return 0; }
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复