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

不要半途而废,加油!

判断位数

题目要求

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

解题思路

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

代码实现

while循环方法

#include 

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 

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循环。

C语言入门3——判断位数(while语句)_第1张图片

你可能感兴趣的:(C)