输⼊⼀个正整数,计算这个整数是几位数

问题介绍

例如: 输⼊:1234  输出:4

           输⼊:12      输出:2

特别说明

之所以将这个问题单独拿出来讲,是因为解决思路的特殊之处,因为0的特殊存在,即使是0也要输出一位数。所以,解决这个问题使用我们平时不太常用的do while循环解决会更好一些

关于循环的知识点讲解,请看这篇http://t.csdnimg.cn/wHzqc

思路分析

1.创建一个变量a存储输入的值,并创建一个临时变量temp拷贝输入的值,对备份进行操作,防止破坏原来的值

2.创建一个变量count存储数字的个数

3.使用一个do while循环,进入循环之后先让count++,因为只要输入了值,就至少有一位数. 再让

   temp的值整除10赋给它本身(这相当于将这个数去掉了一位)当操作之前该值语句的值已 经 只有一位数时,整除10之后就变为0,这时再进行while的条件判断,就不再成立。这时得到的count的值就是我们要求得的位数

代码实现——do while循环

int main()
{
	int a = 0;
	int count = 0;
	scanf("%d", &a);
	int temp = a;//用临时拷贝的值进行操作,防止破坏原来的值
	
	do
	{
		count++;
		temp = temp / 10;
	} while (temp);
	
	printf("%d是%d位数\n", a, count);
	return 0;
}

代码实现——while循环

当然,这个代码并不是用其他循环就不能实现,使用while循环时,需要多加一个if判断语句,为了应付输入的值是0的这种情况

int main()
{
	int a = 0;
	int count = 0;
	scanf("%d", &a);
	int temp = a;
	if (temp == 0)  //与do while循环相比,这里多了一个if语句
		temp++;     //保证即使输入0的时候while循环也能执行一次

	while (temp)
	{
		count++;
		temp = temp / 10;
	}
	printf("%d是%d位数\n", a, count);
	return 0;
}

  • 22
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值