为了账号安全,请及时绑定邮箱和手机立即绑定

请帮我分析一下,这段程序是怎么运行的?值的变化是怎么样的?

请帮我分析一下,这段程序是怎么运行的?值的变化是怎么样的?

C
繁花如伊 2023-03-05 16:12:21
#include<stdio.h>void main(){int diecheng(int num);printf("%d",diecheng(5));}int diecheng(int num){int result;if(num==0)result=1;elseresult=num*diecheng(num-1);return result;}
查看完整描述

2 回答

?
回首忆惘然

TA贡献1847条经验 获得超11个赞

从主函数开始运行,遇到调用函数时,直接跳到下面的函数定义中运行,然后把返回值带到主函数,继续运行主函数下面的部分。
#include<stdio.h>
void main()
{
int diecheng(int num); \\声明函数
printf("%d",diecheng(5)); \\diecheng(5)即为调用此函数,实参为5
}
int diecheng(int num) \\定义函数
{
int result; 
if(num==0)
result=1;
else
result=num*diecheng(num-1);
\\因为实参为5,所以运行else下面的,result=5*(5-1)即为20
return result; \\返回result的值(即20)到主函数的printf语句中,从而打印出来
}

查看完整回答
反对 回复 2023-03-08
?
DIEA

TA贡献1820条经验 获得超2个赞

进入主函数首先声明diecheng函数然后打印diecheng(5),进入diecheng函数,num=5,所以result5=5*diecheng(4),进入diecheng(4)result4=4*diecheng(3)进入diecheng(3) result2=3*diecheng(2) 进入diecheng(2) result2=2*diecheng(1),进入diecheng(1) result1=1*diecheng(0),diecheng(0)=1,result1=1;result2=2;result3=6;result4=24;result5=120,所以结果是120

查看完整回答
反对 回复 2023-03-08
  • 2 回答
  • 0 关注
  • 97 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信