-1.#IND在C++中什么意思?

来源:百度知道 编辑:UC知道 时间:2024/06/27 15:22:14
原代码为:
#include <iostream.h>
void main()
{
double i,j,k,m,sum;
m=0, sum=0;
for (i=1,j=2,k=1;k<=15; i=j,j=m,k++)
{
sum+=j/(i/k*k);
}
cout<<sum<<endl;
}
运行显示为
-1.#IND
Press any key to continue

你的程序逻辑有问题:
sum=j*K*k/i
i j k sum
1 2 1 2.0
2 0 2 0.0
0 0 3 ##
循环到第三次的时候就变成sum=0/0了,自然是个错误的结果

第一次循环,i=1 j=2 k=1 sum=2/(1/1*1)=2
第二次循环,i=2 j=0 k=2 sum=2 + 0/(2/2*2) = 2
第三次循环,i=0 j=0 k=3 sum=2 + 0/(0/3*3) 除0错

说明sum已经是一个无效数据了,越界了~