题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字

程序分析:注意此题要求,所求的是正整数,并且后面要实现逆序

方法一:最基本的思路就是我把输入的这个整数分解,假如输入一个五位数,那么我们就把这个五位数的万位,千位,百位,十位,个位都求出来,最后输出时先输出个位,就成功实现逆序。代码如下:

#include <stdio.h>int main()
{long a, b, c, d, e, x;printf("请输入不多于5位的正整数:");scanf("%ld", &x);a = x / 10000;        //分解出万位b = x % 10000 / 1000;   //分解出千位c = x % 1000 / 100;     //分解出百位d = x % 100 / 10;       //分解出十位e = x % 10;           //分解出个位if (a != 0) {   //若a不为0,则说明这个数有万位,则为五位数printf("为 5 位数\n逆序为: %ld %ld %ld %ld %ld\n", e, d, c, b, a);}else if (b != 0) {  printf("为 4 位数\n逆序为: %ld %ld %ld %ld\n", e, d, c, b);}else if (c != 0) {printf("为 3 位数\n逆序为:%ld %ld %ld\n", e, d, c);}else if (d != 0) {printf("为 2 位数\n逆序为: %ld %ld\n", e, d);}else if (e != 0) {printf("为 1 位数\n逆序为:%ld\n", e);}
}

程序运行结果如下:

方法二:我们还有一种思路,就是利用字符串,我们可以根据字符串的库函数帮我们求出位数,并且可以自定义函数,实现逆序。代码如下:

#include <stdio.h>
#include <string.h>
// 定义一个字符串数组,用来存放得到的整数
static char str[5];
//自定义函数,实现逆序
void Reverse(int n) {while (n > 0) {printf("%c", str[--n]);}
}
int main() {printf("请输入一个正整数:");scanf("%s", str);// 利用库函数求字符串长度,即为所求整数的位数printf("这是一个%lu位数\n", strlen(str));printf("逆序为:");// 调用自定义逆序函数Reverse(strlen(str));return 0;
}

程序运行后,我们同样可以得到方法一所得到的结果。
同时,方法二还有优点,程序易读,并且简洁,方法一需要一位一位去求,而方法二就不用,还有一点,就是方法二只需改变数组长度,就可以实现求六位数,七位数,八位数等等的逆序。

方法三:还有一种思路,就是我们同样还是分解这个整数,将分解的各位存入到数组中,我们可以定义一个计数器,每存入数组一位,计数器就加1,最后计数器的值就位我们所求整数的位数,然后我们循环输出数组的内容实现逆序。代码如下:

#include <stdio.h>
int main() {int n;printf("请输入一个整数:");scanf("%d", &n);int x[1000];int i = 0, j = 0;while (n != 0) {//分解该数,将分解的各位存入x数组x[i] = n % 10;n = n / 10;// i为计数器i++;}// 分解出的位数即为所求 int z = i;printf("该数字为:%d位数\n", z);printf("逆序为:");for (j = 0; j < z; j++) {//分解出的是从个位到十位...依次分解,所以分解第一位即为逆序第一位printf("%d", x[j]);}return 0;
}

同样,我们运行程序同样可以得到一样的结果。
到这里,我们成功用三种方法实现同一题目,当然,方法不止三种,编程就是这样,当你有了思路后,你就可以运用所学去实现你的思路,当你成功运行出结果后,那是成就感,是码农的幸福。

C语言:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字相关推荐

  1. 给一个不多于5位的正整数求它是几位数并逆序打印出各位数字(JAVA)

    import java.util.Scanner;public class Demo6 {public static void main(String[] args) {System.out.prin ...

  2. C语言:输入一个不多于5位的正整数,要求1:求出它是几位数; 要求2:分别打印出每一位数; 要求3:按逆序打印出各位数字;

    /*输入一个不多于5位的正整数,要求1:求出它是几位数; 要求2:分别打印出每一位数; 要求3:按逆序打印出各位数字;*/#include <stdio.h> #include <m ...

  3. 代码实现:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。...

    import java.util.Scanner; //给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. public class Test {public static v ...

  4. 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

    题目:给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. 程序分析:学会分解出每一位数. def theNumberOfNum(self, num):numTemp = int ...

  5. 习题 3.12 给出一个不多于5位的正整数,要求:1. 求出它是几位数;2. 分别打印出每一位数字;3. 按逆序打印出各位数字,例如原数位321,应输出123。

    C++程序设计(第三版) 谭浩强 习题3.12 个人设计 习题 3.12 给出一个不多于5位的正整数,要求:1. 求出它是几位数:2. 分别打印出每一位数字:3. 按逆序打印出各位数字,例如原数位32 ...

  6. 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字

    /*给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字*/ #include<iostream> using namespace std; int main() { ...

  7. 给一个不多于5位的正整数 12345①求出他是几位数 ②分别打印出每一位数字 ③按逆序打印出各位数字

    #include <stdio.h>//包含标准输入输出函数 #include <stdlib.h>//包含malloc动态地址分配 #include <string.h ...

  8. python作业题2 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

    本题目来自runoob 给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. 思路介绍 打印出几位数(利用枚举取一个边界函数) 逆序(用%取余函数) 复习:可以使用//求取两数相 ...

  9. Python实现给一个不多于5位的正整数,求它是几位数,逆序打印这个数字

    一.简单版(只实现这两个需求) num=input('你好呀,请输入一个不多于五位的正整数>>>') print('嗯,我看过了,这是一个'+str(len(num))+'位数.') ...

最新文章

  1. 吵架后一个老公的检讨书(超经典)
  2. 力扣:12正数转罗马数字(python) 简单粗暴解决方法
  3. python local variable_python学习笔记 - local, global and free variable
  4. angularjs 整合bootstrap 时间控件
  5. shsh验证服务器,教你从Cydia上取出SHSH并验证有效性!
  6. String、StringBuilder、StringBuffer三者执行效率
  7. getSystemService
  8. struts中获取多选按钮html:checkbox的值
  9. redhad6.4 配置在线yum源
  10. python json传参数可以传对象吗_廖雪峰的python系列教程(52)——IO编程之序列化...
  11. 【bug】VUE:Cannot read property '_withTask' of undefined
  12. 眼动追踪技术 Eye tracking总结
  13. opencv 视频处理相关
  14. 元素出现>强调>再消失的动画制作【PPT动画】
  15. 银联无跳转支付-Token银联侧
  16. 大厂年薪几十万,但是5-8年外包程序员,年薪是多少你知道吗?
  17. php_enchant,Enchant - [ php中文手册 ] - 在线原生手册 - php中文网
  18. ArcGIS 关于三维立体地图 简单使用,里面的资源就在 arcgis 的demo里面有
  19. twitter_关于Twitter和激进化的警告
  20. 【Unity】Obi插件系列(二)—— Backends、Updaters、Simulation

热门文章

  1. 没项目实战经验?分享自学练手的软件测试项目实战+数据库+接口,部署超级简单
  2. aspen压缩因子_利用aspen plus进行物性参数的估算讲解
  3. 苹果怎么换行打字_好玩的微信空白朋友圈怎么发?教程来了!
  4. Windows远程桌面无法最大化问题
  5. android调用拨号界面拨打电话功能,Android实现拨打电话功能
  6. MS-DOS系统的操作命令
  7. 可视计算机应用期末考试,职称计算机考试photoshop考试习题复习
  8. Vs2008在高DPI下显示模糊的解决办法
  9. String Similarity
  10. 传小鹏汽车融资近4亿美元:小米投资