为什么计算的结果都不一样?
1-1/2+1/3-1/4+1/5-1/6+。。。+1/99-1/100用c语言程序表达
我开始计算的方法不一样,在大家的帮助下,我进行了修改
这是最新的程序
main()
{
int p=1,q=1;
float s=0.0;
for(;p<100;p++){ s=1.0/p*q+s;q=q*(-1.0);}
printf("sum=%f",s);
}
计算结果是0.698172
——————————————————————————————————
而别人的程序是
#include "stdio.h"
void main()
{
int i;
float sum=0.0;
for(i=1;i<=100;i++)
{
if(i%2==0)sum-=1.0/i;
else sum+=1.0/i;
}
printf("1-1/2+1/3-1/4+1/5……-1/99+1/100=%f",sum);
}
————————————————————————————
#include<stdio.h>
void main()
{
int f,i,d;
float t,sum;
sum=1;
d=1;
f=1;
t=1.0/f;
for(i=2;i<=100;i++)
{
d=(-1)*d;
f++;
t=d*(1.0/f);
sum=sum+t;
}
printf("sum=%f",sum);
}
————————————————————————————
以上两种算法都行
两个程序的结果是0.688172
谁对,为什么?