一段c语言程序,求老师给详细解释一下,多谢,程序如下(请主要说明一下如何求出的阶乘值)。

2025-01-07 00:51:54
推荐回答(3个)
回答1:

程序都是以函数的形式编写的,每个函数都是独立的;
根据函数,一句句的去分析,有什么不明白的语句再提问

回答2:

给你加了点注释,这样很好看了
#include
long f1(int p)
{
    //将f1分解来看
    printf("******************************************\n");
    printf("这个过程是求取f(%d)\n",p);
    int k;
    long r;
    long f2(int);
    k=p*p;
    r=f2(k);
    printf("k=%d,返回值是%1d\n",k,r);
    return r;
}
long f2(int q)
{
     long c=1;
     int i;
     //这个循环是在求阶乘,因为n!=n*(n-1)*......*2*1
     for(i=1;i<=q;i++)
     c=c*i;
     return c;
}
int main()
{
     int i;
     long s=0;
     //说明求的值是f1(2)+f1(3)
     printf("整个函数是求取s=f(2)+f(3),过程分解如下:\n");
     for(i=2;i<=3;i++)
     s=s+f1(i);
     printf("\ns=%1d\n",s);
     return 0;
}

 运行结果如下,很能说明程序执行的顺序了

回答3:

哪里不懂 ,问清楚些