VC++实验题 很急

来源:百度知道 编辑:UC知道 时间:2024/05/26 15:07:36
4. 创建一个函数求任意一个数的阶乘。在函数内部定义一个静态局部变量完成求阶乘的工作。从中观察静态局部变量值在函数调用过程中的变化。
感谢大家,各位高手,我QQ543034692很喜欢交朋友,最近在忙协会的事,所以出此下策不要埋汰我啊

最简单的办法:用递归
int function(int a)
{
if(a<1)
{
AfxMessageBox(_T("输入错误,请输入大于0的整数"));
Abort();
}
elseif(a==1)
return 1;
else
return function(a-1);
}
非得要用静态变量的话,试试这样:

int function(int n)
{
int fun(int a);
int i;
for (i=1,i<=n;i++)
fun(i);
return fun(n);
}
int fun(int a)
{
static int f=1;
f=f*a;
retrun f;
}

#include<iostream.h>
long fun(int n)
{
long sum=1;
for(int i=1;i<=n;i++)
{
sum*=i;
cout<<"\n中间值*"<<i<<"="<<sum;
}
return sum;
}
int main()
{
int n=0;
cout<<"输入一个值:";
cin>>n;
cout<<"\n原值=0";
long r=fun(n);
cout<<"\n结果="<<r;
cout<<endl;