经典例题:正整数求位数and求顺、逆序位数

题目要求:

给出一个int整形正整数,要求:

1.求出它是几位数字

2.按照逆序分别输出每位数字,例如123输出为321

3.按正序输出每位数字

分析:

一:求几位数 设置一个计数器count

1234 -> 123 去掉一个4,count+1

123 -> 12 去掉一个3,count+1

12 -> 1 去掉一个2,count+1

1 -> 空 去掉一个1,count+1

而怎么去掉这个4、3、2、1呢?

int整形除以10,可以去掉个位。即:1234/10 = 123

所以代码如下:

程序出现错误,figure(0)应该输出的结果为1,结果代码中没有考虑到n=0的情况。所以我们需要添加一条if()语句。

代码如下:

if(n == 0)

{

count = 1;

}

二:按照逆序分别输出每一位数字,123则输出321.

这里请看一中的分析,我们分别去掉了4、3、2、1,那么正好是1234的逆序输出。

4:1234求10的余数,得到4

123:1234除以10.得到123

所以代码如下:

三:按正序输出每位数字

还按照一中的思路:

1234 ->1,从1234中挑出一个1,需要:1234除以1000,1000 = 10^3 ,3 = 4 - 1,4为位数。

所以,1 = 1234/(10^(count - 1));

1234 ->234; 234 = 1234 - 1000;

234 -> 2 ,从234中挑出2·····

代码如下:

最后贴一下源代码:

#include

int figure(int n)//定义函数:求出n的位数

{

int count = 0; //初始化计数器,为0;

if(n == 0) //当n = 0时,这里所有的n = 0是都单独拿出来讨论。

{

count = 1;

}

while(n != 0)

{

count++;

n /= 10;

}

return count;

}

void nieverynum(int n) //定义函数:逆序输出每一位数字

{

int wei; //逆序的每一位数字

printf("逆序输出结果为:");

if(n == 0) //同样单独讨论n = 0时,下面再出现时不再注释

{

wei = 0;

printf("%d ",wei);

}

while(n != 0)

{

wei = n % 10; //得到个位的数字

n /= 10; //n变成删除个位的数字

printf("%d ",wei);

}

printf("\n");

}

void shuneverynum(int n) //定义函数:顺序输出每一位数字

{

int swei; //顺序的每一位数字

int count = figure(n); //求n是几位数字,调用figure函数,figure函数的返回值为位数;

int power = 1; //这里用一个for语句,求得1 = 1234/(10^count - 1)中的(10^(count - 1))

for(int i = 1;i < count;i++)

{

power *= 10; //即power = 10^(count - 1)

}

printf("顺序输出结果为:");

if(n == 0) //同上例

{

swei = 0;

printf("%d ",swei);

}

while(n != 0)

{

swei = n / power; //顺序的位 = 1234 除以1000

printf("%d ",swei);

n -= swei * power; //例如:123 = 1234 - 1*1000

power /= 10; //100 = 1000 除以 10 然后循环输出顺序位数字

}

printf("\n");

}

int main()

{

printf("%d\n",figure(123456));

printf("%d\n",figure(1));

printf("%d\n",figure(0));

nieverynum(1234567);

shuneverynum(1234567);

return 0;

}

c语言 正整数 几位 逆序,c语言经典例题:正整数求位数and求顺、逆序位数相关推荐

  1. 单片机C语言中的位运算符,单片机c语言教程第八课 运算符和表达式(位运算符)...

    学过汇编的朋友都知道汇编对位的处理能力是很强的,但是单片机C语言也能对运算对象进行按位操作,从而使单片机C语言也能具有一定的对硬件直接进行操作的能力.位运算符的作用是按位对变量进行运算,但是并不改变参 ...

  2. 用c语言输出11位电话号码,用C语言结构体解决 “从键盘输入五个用户的数据,包括姓名和电话号码,要求按姓名排序后,输出用户数据...

    满意答案 //希望我的回答对你的学习有帮助 #include #include struct Student { char Name[10];//学生的姓名,使用字符数组存储,长度为 10 char  ...

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

    题目:给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字 程序分析:注意此题要求,所求的是正整数,并且后面要实现逆序 方法一:最基本的思路就是我把输入的这个整数分解,假如输入一个 ...

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

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

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

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

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

    // Created by www.runoob.com on 15/11/9. // Copyright © 2015年 菜鸟教程. All rights reserved. //#include ...

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

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

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

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

  9. C语言基础02——控制语句。二分查找、随机数讲解、求自幂数、整数逆序、X图案打印、猜数字、公约数公倍数、素数

    目录 分支语句(选择结构) if语句 switch语句 循环语句 while循环 do-while循环 for循环 循环语句的练习 转向语句 goto语句 break语句 continue语句 ret ...

最新文章

  1. SAP WM初阶之TO报表LX12 - TOs Resident Documents(Detailed Overview)
  2. [WCF编程]10.操作:回调操作
  3. (转)NSIS使用心得
  4. 图灵,蔡汀,达尔文:计算中的上帝
  5. 解决initializing java tooling(1%)
  6. Oracle之自定义函数
  7. NPOI2.0学习(三)
  8. 物理用不用计算机,计算物理学到底是干什么的?
  9. mysql字段长度的作用_数据库字段的长度 作用
  10. CF918D: MADMAX 题解
  11. IP地址到底是什么?
  12. 分辨率、像素和PPI
  13. 微信公众号检测本地App, 安装则打开,未安装则下载的实现方式
  14. 网易云视频获取标题和时长
  15. 笔试题————一套实用的渗透测试岗位面试题
  16. 代码静态检查工具汇总
  17. 基于Springboot外卖系统16:菜品修改模块+菜品信息回显+ID查询口味列表+组装数据并返回
  18. 远程视频监控智能工业网关
  19. Chrom谷歌浏览器配置vue插件
  20. 我的世界手机版javaui材质包_教你然后用手机玩电脑版我的世界模组?

热门文章

  1. 【IntellJ IDEA】idea的Terminal窗口中文乱码 解决方法
  2. 【亲测有效】无法定位链接器!请检查 tools\link.ini 中的配置是否正确的解决方案
  3. Excel 条件格式使用方法
  4. python数据导出excel_【python Excel】如何使用python将大量数据导出到Excel中的小技巧之一...
  5. css如何改变横线<hr/>标签的颜色
  6. vue 路由参数变化,页面不刷新(数据不更新)解决方法
  7. linux的manual手册不存在,在 Linux 命令行下使用“原力”
  8. 要使一个问题能够用计算机解决,如何正确并解决在使用计算机中的问题?
  9. Linux(乌班图 )系统下安装jdk 和eclipse开发IDE
  10. 用python解析html