解题思路:
回文数:是从左到右读和从右到左读都一样的数字。
思路:既然题目要求使用字符串来解决,无非就是字符串的比较问题。先使用一个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语言训练-大、小写问题 (C语言代码)浏览:2349 |
【绝对值排序】 (C语言代码)浏览:713 |
【简单计算】 (C语言代码)浏览:622 |
三角形 (C++代码)递推浏览:755 |
C语言程序设计教程(第三版)课后习题6.5 (C语言代码)浏览:586 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:468 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:552 |
数对 (C语言代码)浏览:697 |
简单的a+b (C语言代码)浏览:478 |
Tom数 (C语言代码)浏览:492 |