如题所述
#include "stdio.h"
double fun(int n)//用double提高精度和计数位数。
{
double sum=1.0;
int i;
for(i=1;i<=n;i++)
sum*=i;
return sum;
}
int main()
{
int i,mark=1;
double sum=0,item=0;
for(i=1;i<=9;i++)
{
item=mark*fun(i);
sum+=item;
mark=-mark;
}
printf("1!-2!+3!-4!+5!-6!+7!-8!+9!=%.0lf\n",sum);
}
追问提示有错误。
关闭VC重进,再重编次
追问en。成功了。我们老师根本不讲怎么弄。自己看书也看不懂。。。郁闷。
追答先看明白书上的语法,再一边自己写,一边在VC上调试。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2013-04-26
int fact(int n)
{
int m = 1;
while(n>0)
{
m*=n;
n--;
}
return m;
}
int main()
{
int i, sum=0;
for(i=1;i<=9;i++)
{
if(i%2)
sum+=fact(i);
else
sum-=fact(i);
}
printf("1!-2!+3!-4!+5!-6!+7!-8!+9!=%d\n", sum);
}
{
int m = 1;
while(n>0)
{
m*=n;
n--;
}
return m;
}
int main()
{
int i, sum=0;
for(i=1;i<=9;i++)
{
if(i%2)
sum+=fact(i);
else
sum-=fact(i);
}
printf("1!-2!+3!-4!+5!-6!+7!-8!+9!=%d\n", sum);
}