求每行代码的意思和作用,详细一点,谢谢!

2025-03-25 08:41:27
推荐回答(1个)
回答1:

前面的f是一个函数,参数是整型的n,无返回值

程序刚运行的时候先到main函数

定义一个整型的n,while(1)是循环输入的意思,然后scanf是输入,从键盘敲入一些数字回车,就把这些数字赋值给n,如果n<0,就break跳出while循环,如果为0,就输出0,再输出换行,然后返回到while(1),重新scanf输入数字,如果>0,这里以10为例:

f(n)就是调用上面的fun函数,把n=10传递过去,这样fun中的n就是main中的n=10,这时候就开始执行fun函数:

判断n是否等于0,是的话直接返回,什么都不输出,不是的话执行f(n/2)即f(5),同理,具体可以看我下面这张图:(其实就是递归调用)