栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

2021-10-12

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2021-10-12

C语言题目:如何判断一个整数有几位,并且顺序依次输出其各位的数字

问题一:如何判断整数的位数?

C语言中,我们知道整数每次除以10,就会丢弃其最低位的那个数字,例如:123/10=12 -> 丢弃了数字3
12/10=1 ->丢弃了2
1/10=0 ->丢弃1
最终等于0,做了3次,因此它的位数为3
按照这个思想,当我们给整数n赋值后,便每次使n/=10,并设立一个计数器i,直至结果等于0,最终i的值就是其位数;

代码实现:
int i = 1;
long long n;
scanf("%lld", &n);
long long m = n;
long long t = n;
while (n / 10 != 0)
{
	n = n / 10;
	i++;
}
printf("n其位数为:%dn", i);
这里最好n设置成long long 类型,这样的话可以测得较大位数的数字,笔者在这里试了一下,最大能测得的位数为19位;
问题二:如何顺序输出其各位数字?

这里我直接用一幅图描述下:

顺便解释下pow()函数用法,例如:2的3次方->2^3,可以用到pow(2,3),其返回值便是2的3次方的值;

代码实现:

int t=n;//输入的值赋值给t;
int z = pow(10, i-1); 
while (z != 0)
{
	printf("%d ",t/z);//输出最高位数字
	t %=  z;//舍弃最高位
	z /= 10;
}

实例:

以上便是对本次问题的求解,本人第一次写博客,用来记录自己C语言的学习过程,如有哪点错误,还请各位多多指正。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/316891.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号