C语言入门3——判断位数(while语句)

不要半途而废,加油!

判断位数

题目要求

程序要读入一个5位以下(含5位)的正整数,然后输出这个整数的位数。如输入:352,输出:3 。

解题思路

循环令数字每次/10,即去掉最右边的一位数,一直到结果为0,计算过程中持续计数,程序不考虑输入验证,不考虑输入值小于0或超过五位数的情况

代码实现

while循环方法

#include <stdio.h>

int main()
{
	//初始化变量 
	int x = 0,longs = 0;
	//获取输入的整数 
	printf("请输入一个大于0的整数:");
	scanf("%d", &x);
	//先进行一次/10,并记录一位 
	longs++;
	x = x/10;
	//若/10后仍大于0,则重复此步骤 
	while(x>0)
	{
		longs++;
		x /= 10;
	}
	//输出该整数的位数 
	printf("您输入的整数为%d位", longs);
	
	return 0;
}

do - while循环方法

#include <stdio.h>

int main()
{
	//初始化变量 
	int x = 0,longs = 0;
	//获取输入的整数 
	printf("请输入一个大于0的整数:");
	scanf("%d", &x);
	//先进行一次/10,若/10后仍大于0,则重复此步骤 
	do
	{
		longs++;
		x /= 10;
	}while( x>0 );
	//输出该整数的位数 
	printf("您输入的整数为%d位", longs);
	
	return 0;
}

代码总结

while与do - while相比两者的区别是,do - while是先进入循环体,再判断是否符合条件,while是先判断是否符合条件,再进入循环体。两者的相同点是条件满足时执行循环,条件不满足时结束循环。

下图左边是do - while循环,右边是while循环。

在这里插入图片描述

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值