解题思路:
回文数:是从左到右读和从右到左读都一样的数字。
思路:既然题目要求使用字符串来解决,无非就是字符串的比较问题。先使用一个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 人评分
WU-输出正反三角形 (C++代码)浏览:1018 |
C语言程序设计教程(第三版)课后习题9.10 (C语言代码)浏览:556 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:689 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:556 |
IP判断 (C语言代码)浏览:534 |
多输入输出练习2 (C语言代码)浏览:1656 |
C语言程序设计教程(第三版)课后习题10.3 (C语言代码)浏览:840 |
明明的随机数 (C语言代码)浏览:953 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:446 |
蓝桥杯基础练习VIP-报时助手 (C++代码)浏览:1064 |