请大家帮我解释一下这段程序的运行结果为什么是这样
写了一个求阶乘的递归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这条语句呢,哪里出错了呢 展开
#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这条语句呢,哪里出错了呢 展开
中智咨询
2024-08-28 广告
2024-08-28 广告
在当今竞争激烈的商业环境中,企业需要不断提高自身的竞争力,以保持市场份额和增加利润。通过人效提升,企业可以更有效地利用有限的资源,提高生产力和效益,从而实现盈利目标。中智咨询提供全方位的组织人效评价与诊断、人效提升方案等数据和管理咨询服务。...
点击进入详情页
本回答由中智咨询提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询