请问这个c++程序的运行结果是,为什么?

来源:百度知道 编辑:UC知道 时间:2024/06/29 23:09:12
#include"iostream.h"
int a=5;
int fun(int);
void main(){
int a=10;
cout<<fun(3)*a<<endl;
}
int fun(int k){
if(k==0)return a;
return(fun(k-1)*k);
}
写出每一步的所表示的意思,并写出最后的结果!

#include"iostream.h" //包含C++的头文件,使用里面的函数
int a=5; //定义全局变量a=5
int fun(int); //声明一个函数fun()有参数int
void main(){ //主函数main()入口
int a=10; //定义局部变量a=10
cout<<fun(3)*a<<endl; //输出结果:调用函数fun()并*a的结果
}
int fun(int k){ //定义这个函数fun()的具体内容
if(k==0)return a; //如果参数k==0,就返回全局变量a=5
return(fun(k-1)*k); //否则,返回递归调用fun()分得结果

}

结果300

递归啊。。。。。。。。。疯了。

up