一段c语言程序,求老师给详细解释一下,多谢,程序如下(请主要说明一下如何求出的阶乘值)。
longf1(intp){intk;longr;longf2(int);k=p*p;r=f2(k);returnr;}longf2(intq){longc=1;inti;...
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=%1d\n",s);
} 展开
{
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=%1d\n",s);
} 展开
3个回答
2013-08-21
展开全部
程序都是以函数的形式编写的,每个函数都是独立的;
根据函数,一句句的去分析,有什么不明白的语句再提问
根据函数,一句句的去分析,有什么不明白的语句再提问
追问
s=%1d
就这个
追答
printf("\ns=%1d\n",s);
\n ,作用是换行
s= ,直接输出
%d ,输出一个整数,%d不显示,直接输出一个数值
"%d",s ,输出 s 的值,如果 s 等于 5 ,那么 %d 就是 5
举例:
int s=123;
printf("s = %d",s);
输出:
s = 123
展开全部
给你加了点注释,这样很好看了
#include<stdio.h>
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;
}
运行结果如下,很能说明程序执行的顺序了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
哪里不懂 ,问清楚些
追问
从这里开始,long f2(int q)。。。。。。如何通过for求出的阶乘。
从这里开始,long f2(int q)。。。。。。如何通过for求出的阶乘。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询