(i*i)!求和

来源:百度知道 编辑:UC知道 时间:2024/05/14 18:30:34
下面的程序是求 (i*i)! (i=1,2,3,4,5...n)和的解,要求程序控制:
① 输入的n值不能小于1,不能大于10;
② 求i*i的过程采用函数调用;
③ 求阶乘的过程必须采用函数递归调用的方法。请将程序补充完整。
#include <stdio.h>
main()
{ int i,n;
double s=0, f1(int i),f2(int n);
printf("please input n(n>=0&&n<=10):\n");
scanf(“%d”,&n);
while(n<1||n>10)
{printf(“input error,please x,n:\n”);
scanf(“%d”,&n);
}
(1)
s=s+f1(i); /*求∑(i*i)!*/
printf("\ns=%lf\n",s); /*输出∑(i*i)!*/
}
double f1(int i)
{ int k;
long r;
(2) /*对f2函数的声明*/
(3) /*求n=i*i*/
(4) /*调用求n!*/
(5) /*返回n!*/
}
double f2(int n) /*求n!*/
{ long f;
(6)

#include <stdio.h>
main()
{ int i,n;
double s=0, f1(int i),f2(int n);
printf("please input n(n>=0&&n<=10):\n");
scanf("%d",&n);
while(n<1||n>10)
{printf("input error,please x,n:\n");
scanf("%d",&n);
}
for(i=1;i<=n;i++)/*(1)*/
s=s+f1(i); /*求∑(i*i)!*/
printf("\ns=%lf\n",s); /*输出∑(i*i)!*/
getch();
}
double f1(int i)
{ int k;
long r;
/*对f2函数的声明*/
k=i*i;/*求n=i*i*/
r=f2(k);/*调用求n!*/
return r;/*返回n!*/
}
double f2(int n) /*求n!*/
{ long f;
if(n==0)
f=1;
else
f=n*f2(n-1);/*递归求解 n!*/
return f;/*返回 n!*/
}