C语言 38. 填空题 以下程序的输出结果是_____。 #include<stdio.h>

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);
}

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

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-11-17
结果是sum=128
第2个回答  2018-11-17
有等待这点时间,输入电脑跑一遍就知道。