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",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",n);
    return 0;
	}

代码总结

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

do while 与 while 流程图

在这里插入图片描述
注意:循环体内要有改变条件的机会,要不然循环可能会卡死。

猜你喜欢

转载自blog.csdn.net/weixin_50802839/article/details/115024581