1 个回答
pond
回答于 2024-07-20
已采纳
提问:麻烦给出这个程序的解析过程因为我不知道fun干嘛的
{int a=5;fun(a);printf("\n");}fun(int k){if(k>0)fun(k-1);printf("%d",k);}结果为:_______________
网友回答:
这个程序分为了两部分:
{
int a=5;
fun(a);
printf("\n");
}
这是第一部分:主函数,目的是将a=5带入功能函数fun()中
第二部分为:
fun(int k)
{
if(k>0)
fun(k-1);
printf("%d",k);
}
在主函数里fun(a);则将5带入了第二部分里,即此时k的值为5,那么看if(k>0,只有k是大于0的,就会执行fun(k-1);相当于一层套一层在k=5,里面再放一层执行k-1=4,再在k=4里面放一层。当k=0是,就不需要在套入函数fun(k-1),此时k=5的情况在最外面,k=0的情况在最里面。
程序运行从里面往外依次运行,于是输出是倒的,即为012345
为此我还进行了检验,证明我说的结论正确:

还有问题吗,谢谢采纳,Thanks♪(・ω・)ノ
我来回答
相关问题
1
回答
游戏王卡组推荐
单机游戏
567 浏览