帮忙看看这个程序哪错了,运行结果是+INF,目的是求1+1/(1+2)+1/(1+2+3)+1/(1+2+3+4...+m)的和c语言

include<stdio.h>
main()
{
int i,j,m;
double item,result;
printf("Input m:");
scanf("%d",&m);
result=1;
for(i=0;i<=m;i++)
{ item=0;
for(j=1;j<=i;j++)
item+=j;
item=1/item;
result+=item;
}
printf("%.10f",result);
getch();
}

/*拿去直接运行吧……!*/
#include<stdio.h>
/*C的标准main函数是由返回值的,函数类型也是int的。不加int和return 0是微软特搞的,不推荐*/
int main()
{
int i,j,m;
double item,result;
printf("Input m:");
scanf("%d",&m);
result=0;
item=0;
for(i=1; i<=m; i++)
{
item+=i;
result+=1.0/item;
}
printf("%.4f\n",result);
return 0;
}追问

那我的哪错了

追答

超出表示范围,具体原因如下
第一次循环的时候,i=0 内循环没有执行,那么item=0,当执行item=1/item的时候就等价于 item=1/0 0不能做分母,这个你应该知道的,但从理论上讲 1/0 就是无穷大 所以有了 INF 至于后面些都是由于那个原因造成的,你把外层循环初始值改为1就行了,因为没有必要从0开始。
ok 加分吧……!

来自:求助得到的回答
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-08
超出了double能表示的小数的极限,C,C++语言中就用INF表示超出范围追问

可是·不管输入什么都是+INF

第2个回答  2012-12-08
李亚宁

无穷级数1 + 1\/2i + ...i从1到无限 结果等于2 是怎么算出来的。
因为等比级数公比q=1\/2,所以等比级数一定收敛,设其和等于S,即 S=1+1\/2+1\/4+1\/8+……+1\/2^n+……,则2S= 2+1+1\/2+1\/4+……+1\/2^n+……,两式相减就得到S=2。

c++ 中,下面程序运行结果出现了inf
include<cstdio>#include<math.h>using namespace std;int main() {doublex,a,b,c,d;double y;scanf("%lf%lf%lf%lf%lf",&x,&a,&b,&c,&d);y=(a*x*x*x)+(b*x*x)+(c*x)+d;printf("%0.7lf",y);return 0;}

求问1+1+1\/2!+1\/3!+……的极限是e应该怎么证
回答:利用级数 e^x = Σ(k=0~inf.)(x^k)\/k!,-inf. < x < +inf., 可得 e = Σ(k=0~inf.)(1\/k!), 有 e = lim(n→inf.)Σ(k=0~n)(1\/k!), e >= Σ(k=0~n)(1\/k!),n∈Z+。

这段C++代码那里错了?为什么算结果是及格平均分是1.#inf
avg2=sum1\/count2;cout<<"及格人数平均成绩:"<<avg2<<endl;} }

证明:1+1\/2+……+1\/n极限为无穷(n趋于无穷)
2^k = 1 + 1\/2 + (1\/3 + 1\/4) + … + {1\/[2^(k-1) - 1] + … + 1\/(2^k)} > 1 + 1\/2 + 2*(1\/4) + … + [2^(k-1)]*[1\/(2^k)] = 1 + k\/2 → inf.(n→inf.), 故得. 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 为...

我的c++程序运行结果是-1.#INF和-1.#IND,可是检查了很多遍,并无溢出或...
出现-1.#INF和-1.#IND错误一般是计算溢出错误,比如除以0的操作,一般除法容易出错,建议对除数进行检查,比如除数绝对值小于10E-5就认为除数为零,不进行除法操作

请电脑高手解答,此进程是干什么的?
该进程也会处理在计算机启动和关机时运行的服务。这个程序对你系统的正常运行是非常重要的。注意:services也可能是W32.Randex.R(储存在%systemroot%\\system32\\目录)和Sober.P (储存在%systemroot%\\Connection Wizard\\Status\\目录)木马。该木马允许攻击者访问你的计算机,窃取密码和个人数据。该进程的安全等级是建议立即...

matlab 中求和:(1+1\/2+1\/3+...+1\/n),n从1到无穷,可以把编程的程序给我...
>> syms n s;>> s=symsum(1\/n,n,1,inf);simple(s)回车,得ans = Inf它是调和级数,是发散的。

matlab 求极限 lim(1+1\/2+1\/3+1\/4+……+1\/n-lnn),n->无穷
>>syms x n;>>sol=limit(symsum(1\/x,x,1,n)-log(n),n,inf)sol = eulergamma >> vpa(sol,20)ans = 0.57721566490153286061

matlab编程为什么算出来是inf,for 循环求到1:5的时候就inf了,郁闷死了...
因为当第五个的时候,((x2(i)-x1)^2+(y2(j)-y1)^2等于0,这样分母为零,l2就成了inf了

相似回答