m0_64078755 2022-01-20 10:37 采纳率: 71.4%
浏览 26
已结题

执行过程不懂,代码是书上的,不懂为什么会输出四个数,我的理解就是只输出一个数。求各位程序猿解释一下代码的执行过程和结果。

#include<stdio.h>
void bin(int x)
{
if(x/2>0) bin(x/2);
printf("%d\n",x%2);
}
int main()
{
bin(12);
return 0;
}

  • 写回答

2条回答 默认 最新

  • qzjhjxj 2022-01-20 11:11
    关注

    递归函数 bin(); 当x=12 ,递进 x=6 ,递进 x=3 ,递进 x =1 ,if(x/2>0) 条件不满足,回归 printf("%d\n",x%2);输出 1
    回归 x=3 时 printf("%d\n",x%2);输出 1 ,回归 x=6 时 printf("%d\n",x%2);输出 0,回归x=12时printf("%d\n",x%2);输出 0。
    最终:1 1 0 0

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月3日
  • 已采纳回答 1月26日
  • 创建了问题 1月20日

悬赏问题

  • ¥15 基础的图像处理问题求解答
  • ¥50 全国两定智慧医保接口开发相关业务文档,以及技术实现流程文档
  • ¥15 idea做图书管理系统,要求如下
  • ¥15 最短路径分配法——多路径分配
  • ¥15 SQL server 2022安装程序(英语)无法卸载
  • ¥15 关于#c++#的问题:把一个三位数的素数写在另一个三位数素数的后面
  • ¥15 求一个nao机器人跳舞的程序
  • ¥15 anaconda下载后spyder内无法正常运行
  • ¥20 统计PDF文件指定词语的出现的页码
  • ¥50 分析一个亿级消息接收处理策略的问题?