m0_73937557 2022-10-06 16:22 采纳率: 0%
浏览 46

统计一个整数的位数。

#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,这是咋回事?

  • 写回答

2条回答 默认 最新

  • 心寒丶 全栈领域优质创作者 2022-10-06 16:36
    关注

    do while 循环,上来就先执行大括号里的代码一次呀,也就是{ i++;a=a/10;}这两句
    while(a!=0);是判断是否继续循环执行,跟输出结果没啥关系,执行完之后就会输出结果

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 10月6日

悬赏问题

  • ¥15 微信小程序web-view嵌套H5页面IOS左滑会出现相同的页面,有什么解决方法吗?
  • ¥60 如何批量获取json的url
  • ¥15 comsol仿真压阻传感器
  • ¥15 Python线性规划函数optimize.linprog求解为整数
  • ¥15 llama3中文版微调
  • ¥15 pg数据库导入数据序列重复
  • ¥15 三分类机器学习模型可视化分析
  • ¥15 本地测试网站127.0.0.1 已拒绝连接,如何解决?(标签-ubuntu)
  • ¥50 Qt在release捕获异常并跟踪堆栈(有Demo,跑一下环境再回答)
  • ¥30 python,LLM 文本提炼