C语言入门——判断位数(whlie指令)

判断位数

题目要求

程序要读入一个非负整数,然后输出这个整数的位数。如352,输出3。

解题思路

给定的数/10,即去掉最右边的数,一直到结果为0。

代码实现

while循环
#include<stdio.h>
int main(){
          
   
	int x;
	int n=0;
    scanf("%d",&x);
    n++;
    x /=10;
    **//  a/=b等价于a=a/b
    //while循环前加n++ x/10的目的是解决0的情况**
    while(x>0){
          
   
    	n++;
    	x /=10;
	}
printf("%d
",n);
return 0;
}
do while循环
#include<stdio.h>
int main(){
          
   
	int x;
	int n=0;
    scanf("%d",&x);
    do{
          
   
    	n++;
    	x /=10;
	}while(x>0); 

    printf("%d
",n);
    return 0;
	}

代码总结

do-while进入循环时不做检查,而是在执行过一轮循环后在检查循环是否满足条件,满足继续循环,不满足跳出。 while是先判断是否满足条件,再进入循环体,循环后,条件成立继续循环,直至不满足条件跳出循环。 区别:判断条件,while在前,do-while在后 while可能一遍都不做,do while无论如何都会做一次

do while 与 while 流程图

注意:循环体内要有改变条件的机会,要不然循环可能会卡死。

经验分享 程序员 微信小程序 职场和发展