willow
(willow)
注册会员

一般会员
UID 18370
精华
0
积分 88
帖子 86
金钱 88 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2003-2-15
状态 离线
|
新手,做了道简单的C编程,就是得不到正确答案
求1/1+1/2*1+1/3*2*1.......+1/20*19*...*1
我如果只算到7,答案都是正确的,可是到了8以后数值上限好象就有问题了. 我怎么也不知道到底哪出错了.
m()是用来求n*(n-1)*...*2*1的.
main中2个输出是看m()的值对不对而加上去的.
求哪位高人指点一下...
#include "stdio.h"
#define NUM 20
main()
{
int i;
float sum=0,tmp=0;
for (i=1;i<=NUM;i++)
{ tmp=m(i);
printf("%10.9f\n",tmp);
printf("%10.9f\n",1/tmp);
sum=sum+(1/tmp);
/* printf("%10.9f\n",sum); */
}
printf("The total is %10.9f\n",sum);
}
m(a)
int a;
{
int j;
float m=1;
for (j=1;j<=a;j++)
m=m*j;
return m;
}
|
|