①求阶乘之和s s=1!+2!+···+k! (1 =k =n) ~ ②程序 #include< stdio.h> /*定义函数*/ long f(int n) { int i ; long E ; E=1; for(i=1;i =n;i++)E=E*i; return E; } /*主函数*/ main() { long s; int k,n; scanf("%d",&n); s=0; for (k=1;k =n;k++)s=s+f(k); printf("%ld ",s); } ~ ③解释 #include< stdio.h> long f(int n) /*没试过把f(n)写成f(i)*/ { int i ; long E ; /*此处的E表示(k-1)!,数字可能很大,定义为长整形long, 没试过能不能直接定义为int*/ E=1; /*E初始值必须从1开始,不能从0开始,不然E=E*i横为1*/ for(i=1;i =n;i++)E=E*i; return E; } /*主函数*/ main() { long s; int k,n; scanf("%d",&n); s=0; for (k=1;k =n;k++)s=s+f(k); /*如果s的初始值定为1,那么k就要从0开始了,连带把定义函数的i也改为从0开始*/ printf("%ld ",s); }