c问题求帮助我是c初学者

img


这里说要,求n的位数,但是do语句在这就只能执行一次啊,比如n=60,n在/=一次后就已经满足while表达式了那60不就等于一位数了?

并不是这样哦!
do-while的特性是先做然后再判断,不想while和for是先判断再做;
假如说n=60;
那么n经过n/=10将会变为6,然后digits变为1;
但是6也大于0呀,所以会再n/=10变为0,然后digits变为2;
这时n的值不满足while的条件,就退出了,然后digits是2。
觉得有用的话,请点个采纳可以嘛~QAQ