#include <stdio.h>int main(){ int a,i; scanf("%d",&a); if(a<0){ a=-a; } do{ i++; a=a/10; }while(a!=0); printf("%d",i); return 0;}为啥这样写能行,不是说当a!=0是输出结果。当输入a=0时怎么又会输出1,这是咋回事?
收起
do while 循环,上来就先执行大括号里的代码一次呀,也就是{ i++;a=a/10;}这两句while(a!=0);是判断是否继续循环执行,跟输出结果没啥关系,执行完之后就会输出结果
报告相同问题?