程序那里出错了?
求1-1/2+1/3-1/4.....+1/99-1/100的程序我的写法是:
main()
{
int i;
float s=1.0;
for (i=2;i<=100;i++)
{
if (i%2==0)
s+=1/i;
else s+=-1/i;
}printf ("s=%f",s);
}
在win-tc下编译成功,但是结果是 s=1.000000,错在哪里了呢?请指教!
[此贴子已经被作者于2005-12-2 12:37:36编辑过]
我不知道你错在哪里。不过我自己是这样写的
void main()
{
float a,b,c;
for(a=1;a<=100;a=a+2)
{
b=1/a-1/(a+1);
c+=b;
}
printf("%5.3f",c);
}
算的答案是0.688
我想你可能是I要把它定义成FLOAT试一下呐
1/n 结果是是隐含强制转换成整型数 所以为0 所以循环每一步都是S=S+0 也就是
1=1+0 结果没变化 最后浮点格式输出 结果为1 小数点后为6位精度