weixin_43789629 2021-06-10 22:28 采纳率: 100%
浏览 19
已采纳

帮忙看看下边的c程序为啥运行结果是3 7

#include<stdio.h>

void fun(int x){

if(x/2>1)

   fun(x/2);

printf("%d ", x);

 

int main(){

fun(7);

printf("\n");

return 0;

}

  • 写回答

4条回答 默认 最新

  • 关注

    因为这是递归调用(堆栈原理,后进先出),后调用的先运行结果。

    if(x/2>1)

       fun(x/2); //该方法的调用结果先打印。

     

    如果打印语句放在函数的最前面打印的是73,

    现在打印语句是放在最后面就是37了,类似于二叉树的后根遍历。

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

报告相同问题?