请大家帮我解释一下这段程序的运行结果为什么是这样

写了一个求阶乘的递归c++程序,其中使用了goto语句,程序代码如下:#include<iostream.h>longintfun(intN){if(N==0)retur... 写了一个求阶乘的递归c++程序,其中使用了goto语句,程序代码如下:
#include<iostream.h>
long int fun(int N)
{
if(N==0)
return 1;
else
return fun(N-1)*N;
}
int main()
{
int temp;
cout<<"请输入你的temp:"<<endl;
cin>>temp;
if(temp<=0)
goto done;
else
cout<<fun(temp);
done:
cout<<"你的输入有错误\n";
return 0;
}
当输入temp为12的时候,运行结果如下:
请输入你的temp:
12
479001600你的输入有错误
Press any key to continue
输入的temp满足条件>=0了就应该只输出12!的结果,但为什么还要执行goto done这条语句呢,哪里出错了呢
展开
 我来答
蝶舞聆听
2007-07-14 · TA获得超过919个赞
知道小有建树答主
回答量:567
采纳率:0%
帮助的人:320万
展开全部
goto语句的切入点不是因为goto而执行的

就是说
done:
cout<<"你的输入有错误\n";
这句不论有没有goto都回因为C语言的顺序执行而被执行到的

只是如果输入temp<=0将不会执行
else
cout<<fun(temp);
中智咨询
2024-08-28 广告
在当今竞争激烈的商业环境中,企业需要不断提高自身的竞争力,以保持市场份额和增加利润。通过人效提升,企业可以更有效地利用有限的资源,提高生产力和效益,从而实现盈利目标。中智咨询提供全方位的组织人效评价与诊断、人效提升方案等数据和管理咨询服务。... 点击进入详情页
本回答由中智咨询提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式