C语言 38. 填空题 以下程序的输出结果是_____。 #include<stdio.h>
intfac_sum(intn){staticintf=1,t=1,s=0;inti;if(n>t)for(i=t+1;i<=n;i++)f=f*i;else{f=1;f...
int fac_sum(int n)
{
static int f=1,t=1,s=0;
int i;
if(n>t)
for(i=t+1; i<=n; i++)
f=f*i;
else
{
f=1;
for(i=1; i<=n; i++)
f=f*i;
}
t=n; s=s+f;
return(s);
}
void main()
{
int a[]={3,5,2},i,sum;
for(i=0; i<3; i++)
sum=fac_sum(a[i]);
printf(“sum=%d\n”,sum);
} 展开
{
static int f=1,t=1,s=0;
int i;
if(n>t)
for(i=t+1; i<=n; i++)
f=f*i;
else
{
f=1;
for(i=1; i<=n; i++)
f=f*i;
}
t=n; s=s+f;
return(s);
}
void main()
{
int a[]={3,5,2},i,sum;
for(i=0; i<3; i++)
sum=fac_sum(a[i]);
printf(“sum=%d\n”,sum);
} 展开
3个回答
展开全部
int fac_sum(int n) //累加到加入n!
{
static int f=1,t=1,s=0; //静态变量f和t用来保存上次已求的f=t!,s是累加和
int i;
if(n>t) //若新的n阶乘,大于上次求的t的阶乘,则在已知t!的基础上继续算
for(i=t+1; i<=n; i++)
f=f*i;
else //若新的n阶乘,不大于上次求的t的阶乘,则从1开始做乘法计算n!
{
f=1;
for(i=1; i<=n; i++)
f=f*i;
}
t=n; s=s+f; //保存最近的计算阶乘的n值,以及累加n!
return(s);
}
该程序的作用是求3!+5!+2!
6+120+2=128,所以,运行的答案是:
sum=128
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询