这里的关键是要有一个变量能存储下n!和整个的和,普通int型和long int型变量范围都很小,所以建议用double型变量。
你的程序虽然提示输入数据到变量n,但没有调用输入语句输入,应当:
printf("input a number:"); scanf("%d",&n);
你用sum变量保存累加和,这是正确的,但每项的阶乘值没有变量来保存是个问题,要知道阶乘也是一个累乘的结果,而i*i并不是n的阶乘而是n的平方。当前项等于前边相乘以当前的i值,这个累乘变量的起始值为1。
建议:
int i,n;
double sum,m;
...
sum=0; m=1; //变量m计算当前项即阶乘值
for ( i=1;i<=n;i++ ) { m*=i; s+=m; }
printf("sum=%.0lf\n",sum);
但请注意,仍有n过大无法计算的问题存在。
s = 0
i +=2
j<=i
f +=j
最后一个空f= f*j;其它都是对的
1、 s = 0; //初始化结果为0;
2、 i = i + 2 // 实现带有阶乘的数是奇数
3、 j<=i //运算阶乘的条件
4、 f *= j //运算阶乘
帮你粘贴下
http://zhidao.baidu.com/link?url=nlNYAoPsyaKTFC_a9bGT3XHAcxGuyCPGbDN7qthZ6-UxBCUtZTUhVP0LBoT8q-r6S7ug7ty7cpv_pgsolQRbS_