呵呵!楼主的程序的写法让人看了蛋疼,先帮你美化美化!
#include
long f1(int p)
{
int k;
long r;
long f2(int);
k=p*p;
r=f2(k);
return r;
}
long f2(int q)
{
long c=1;
int i;
for(i=1;i<=q;i++)
c=c*i;
return c;
}
main()
{
int i;
long s=0;
for (i=2;i<=3;i++)
s=s+f1(i);
printf("\ns=%ld\n",s);
}
看一个代码肯定是从main函数看起的。首先main调用了f1,然后f1又调用了f2;
观察f2发现,其实f2(q)就是用来求q的阶乘q!的!所以可进一步观察出f1(p)是用来求(p*p)的阶乘的!
返回到main函数,所以s=4!+9!;
呐,这就是调用函数的过程。