题自:题目 1009: [编程入门]数字的处理与判断_C语言网


题目描述

给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123

输入

一个不大于5位的数字

输出

三行 第一行 位数 第二行 用空格分开的每个数字,注意最后一个数字后没有空格 第三行 按逆序输出这个数

点击查看代码 ```点击查看代码 ``` ``` ```

样例输入
12345
样例输出
5
1 2 3 4 5
54321
我的解答:
 1 // Code file created by C Code Develop
2
3 #include "ccd.h"
4 #include "stdio.h"
5 #include "stdlib.h"
6 #include "math.h"
7
8 int main() {
9 int num;
10 while (1)
11 {
12 // scanf("%d", &num);
13 num = 12345;
14
15 if (num < 100000) break;
16 }
17
18
19 int d;
20 if(num < 10) {
21 d = 1; }
22 else if(num < 100) {
23 d = 2;
24 }
25 else if(num < 1000) {
26 d = 3;
27 }
28 else if(num < 10000) {
29 d = 4;
30 }
31 else {
32 d = 5;
33 }
34 //1
35 printf("%d\n", d);
36 //2
37 int c = num;
38 int s[5];
39 for(int i = 1; i < d + 1; i++ ) {
40
41 int z = 0;
42 z = (int) (c) / pow(10 , (d - i));
43 c = c - z*pow(10 , (d - i));
44 s[i - 1] = z;
45 // printf("s[%d]:%d ",i-1, s[i - 1]);
46 // printf("10^d-i+1:%d\n", (int) pow(10, (d - i)));
47 //printf("c:%d\n", c);
48 printf("%d", z);
49 if(i < d) {
50 printf(" ");
51 }else {
52 printf("\n");
53 }
54 }
55
56 // printf("OK");
57 int b;
58 int sum = 0;
59 for(int i = 0; i < d; i++ ) {
60 // printf("s[%d]:%d ", d - i - 1, s[d - i - 1]);
61 sum += s [d - i - 1]*pow(10, (d - i - 1));
62 // printf("10^d-i+1:%d\n", s [d - i] * pow(10, (d - i-1)));
63 // printf("c:%d\n", sum);
64 }
65 printf("%d", sum);
66
67
68 c = max(1, 6);
69 //printf("%d", c);
70 return 0;
71
72 }

优质解答:1009: [编程入门]数字的处理与判断 (C语言)字符数组与常规思路

将输入的数字当作字符串来储存,用strlen(  ) 函数得到字符串长度,即为数字位数

将字符串从左到右遍历输出(带空格)

最后还有一个回车不要忘了

再将字符串从右往左遍历输出(不带空格)就好了

注意事项:

题目说数字位数不超过5,所以定义字符数组长度应不小于6

因为字符串结尾还有结尾符 '\0' 占一位

 1 #include <stdio.h>
2 #include <string.h> //C语言字符串头文件,strlen() 函数包含在此内
3
4 int main()
5 {
6 char str[10]; //定义字符串长度为 10
7 scanf("%s", str); //输入数字 (作为字符串输入)
8
9 int len = strlen(str); //获取字符串长度
10 printf("%d\n", len); //输出字符串长度,即为数字位数
11 for (int i = 0; i < len; i++) //从左往右遍历输出
12 {
13 printf("%c ", str[i]);
14 }
15 printf("\n"); //输出回车
16 for (int i = len - 1; i >= 0; i--) //从右往左遍历输出
17 {
18 printf("%c", str[i]);
19 }
20 return 0;
21 }

随机推荐

  1. IceRPC之调度管道->快乐的RPC

    作者引言 很高兴啊,我们来到了IceRPC之调度管道->快乐的RPC, 基础引导,有点小压力,打好基础,才能让自已不在迷茫,快乐的畅游世界. 调度管道 Dispatch pipeline 了解如 ...

  2. Android OpenMAX(二)OMX Component实现基础

    Android OpenMAX IL提供的API位于 frameworks/native/headers/media_plugin/media/openmax ,目录下存放有预定义的类型.组件句柄定义 ...

  3. HMI-Board上手指南

    介绍 HMI-Board为 RT-Thread 联合瑞萨推出的高性价比图形评估套件,取代传统的 HMI+主控板硬件,一套硬件即可实现 HMI+IoT+控制的全套能力.依托于瑞萨高性能芯片 RA6M3 ...

  4. Java synchronized与ReentrantLock的区别

    synchronized与ReentrantLock的区别 synchronized是一个关键字,ReentrantLock是一个类 synchronized修饰代码块和方法,ReentrantLoc ...

  5. Python BeautifulSoup定位取值

    -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* ...

  6. 闪迪SSD PLUS 128G CDM CrystalDiskMark

    闪迪SSD PLUS 128G CDM CrystalDiskMark 4k 读取才11,大号U盘水平. -- 对比三星SATA SSD. ..

  7. 跨域iframe 配置fullscreen权限

    在新版本的 Chrome 等浏览器中,默认情况下禁止了跨域 iframe 开启全屏的权限.在 iframe 中,我们通常使用 element.requestFullscreen() 方法来进行全屏展示 ...

  8. 基于 WEB 的 WMS 3D 可视化管理系统

    基于 WEB 的 WMS 3D 可视化管理系统 前言 首先介绍一下什么是WMS.WMS是仓库管理系统(Warehouse Management System) 的缩写,仓库管理系统是通过入库业务.出库 ...

  9. HBase2版本的修复工具HBCK2

    一.hbase出现的问题 1.元数据表hbase:namespace 不在线 导致查询数据时 master is initing 2.一些表的region一直处于opening状态 3.region ...

  10. 实验四:WinRAR漏洞

    [实验目的] 通过打开rar文件,获取到目标机shell. [知识点] winrar漏洞 [实验原理] 该漏洞是由于WinRAR所使用的一个陈旧的动态链接库UNACEV2.dll所造成的,该动态链接库 ...