/*
//计算val的阶乘,即1*2*3...*val
int factorial(int val)
{
if(val>1)
return factorial(val-1)*val;
return 1;
}
练习6.35:
在调用factorial函数时,为什么我们传入的值是val-1而非val--?
答:乘号两侧的表达式的计算顺序未定义。
陷入死循环。
*/
#include "TouWenJian_6.h"
int factorial(int val)
{
if(val>1)
return factorial(val--)*val;
return 1;
}
int main(int argc, char *argv[])
{
// for(int i=1;i<argc;++i)
// cout<<argv[i]<<endl;
cout<<factorial(5)<<endl;
return 0;
}
C++Primer第五版第六章练习6.35
最新推荐文章于 2024-11-07 15:40:17 发布