题自:题目 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. MLP实现minist数据集分类任务

    1. 数据集 minist手写体数字数据集 2. 代码 ''' Description: Author: zhangyh Date: 2024-05-04 15:21:49 LastEditTime: ...

  2. 面向编程对象的好处及应用紧耦合VS松耦合(继承,多态)(1-2)

    面向编程对象的好处及应用紧耦合VS松耦合(继承,多态)(1-2) 当初: 代码是做了客户端与业务的分离的封装 现在: 加深下功底,在上一个随笔之前做一个修改和拓展(继承,多态) 作业: 现在从计算器变 ...

  3. Android 13 - Media框架(30)- ACodec(六)

    关注公众号免费阅读全文,进入音视频开发技术分享群! 前一节我们了解了input buffer写入的流程,知道了起播写前几笔数据时会先获取graphic buffer,这一节我们就一起来了解下deque ...

  4. Flutter(四):Flutter 语言 Dart基础使用

    一.变量和常量 变量 var a = 1; var str = 'abc'; 常量 const PI = 3.14; 不可变对象 final PI = 3.14; final TIME = new D ...

  5. 8.24考试总结(NOIP模拟47)[Prime·Sequence·Omeed]

    时间带着明显的恶意,缓缓在我的头顶流逝. T1 Prime 解题思路 成功没有签上到... 一看数据范围 \(R-L+1\le 10^7,R\le 10^{14}\) ,这肯定是判断范围内的数字是否可 ...

  6. 【论文笔记】R-CNN系列之论文理解

    [深度学习]总目录 RCNN全称region with CNN features,即用CNN提取出Region Proposals中的featues.RCNN系列论文(R-CNN,Fast R-CNN ...

  7. JS注释 JS变量

    <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8 ...

  8. cors解决跨域 服务器代理方式

    // cors 方法         // 后端程序员通过定义后端程序,让跨域访问,可以正常执行,可以获取响应体内容         // 前端程序员不需要做任何的调整         // 后端程序 ...

  9. vue计算属性computed

    模板中放入太多的逻辑会让模板过重且难以维护,使用计算属性可以让模板变得简洁易于维护.计算属性是基于它们的响应式依赖进行缓存的,计算属性比较适合对多个变量或者对象进行处理后返回一个结果值,也就是数多个变 ...

  10. 喜讯!INFINI Easysearch 在墨天轮数据库排名中挺进前30!

    近日,2023 年 10 月的 墨天轮中国数据库流行度排行 火热出炉,本月共有 283 个数据库参与排名,中国数据库行业竞争日益激烈.其中,极限科技旗下软件产品 INFINI Easysearch 稳 ...