解题思路:

                回文数:是从左到右读和从右到左读都一样的数字。

                思路:既然题目要求使用字符串来解决,无非就是字符串的比较问题。先使用一个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分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 1 条评论

StarHui 2年前 回复TA
由于里面不能加入的网站无效,我把网站贴这了
strcmp函数讲解网站(菜鸟教程):https://www.runoob.com/cprogramming/c-function-strcmp.html