解题思路:
    根据题目描述,取值在5位数之间,所以范围并不大,利用while循环逐个取int型个位数的方法是没有必要的,毕竟之后多数人还是要把取到的个位数存放到变量或者数组中。而且并不进行计算,那么就可以直接将输入的数据用一串字符串(即字符数组)储存,这么就可以直接得到字符串长度,并且省去了,除模等运算。



注意事项:

    在字符串输出时要注意几个strlen(s)-1的位置,理解为什么是strlen(s)-1,而不是strlen(s)。这也是我提交没注意前的细节,以上是我的解题思路。




参考代码:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
    char s[6];
 scanf("%s",s);
 printf("%d\n",strlen(s));
 for(int i=0;i<strlen(s);i++)
 {
  if(i<strlen(s)-1)
  printf("%c ",s[i]);
  else
  printf("%c\n",s[i]);
 }
 for(int i=strlen(s)-1;i>=0;i--)
 {
  printf("%c",s[i]);
 }
    return 0;
}


点赞(2)
 

0.0分

0 人评分

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

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

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

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

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

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

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

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

评论列表 共有 1 条评论

李子函 6年前 回复TA
确实比那前三个最优答案,我感觉还要好。至少是更加健壮。讲道理,第一个答案我觉得就是错的。单敲一个空格都行。你这个的话,如果输入了字母(非法字符)他也会输出。这点不够健壮