需要稍作修改
#include
main()
{
int a,b,c,d;
double e=0.0; //这里e要初始化
a=1,b=1,c=1; //b要从1开始,要不然第一个算不上
while(b<=100)
{
e=c*1.0/b;//要不然是整数除以整数,值是整数,也就是0
b=b+1;
c=-c;
}
printf("答案是%lf",e);
}
这个应该是你计算e = a + c/b的时候出错了。因为c b 是整数,所以c/b是正处运算,可以改成c/(b*1.0).
因为c和b都是整型,俩整型相除,会舍去小数部分。
e=1.0;
c=-1;
while(b<=100)
{
e=e+ (double)c/b;
b=b+1;
c=-c;
}
这样就可以了
程序修改如下:
#include
main()
{
int b,c;
double e=1.0;
b=2,c=1;
while(b<=100)
{c=-c;
e=e+c*0.1/b;
b=b+1;
}
printf("答案是%lf",e);
}
运行结果为:0.968817
是你想要的结果吗?
第二个
看见后面的
;
了吗?
其实完整格式是
while(P3_7==0)
{
;
}
就是一直循环到不等于0
什么都不干
实际上正规的写法应该是
NULL;
而不是只有一个;
只有一个;
在代码优化时会被优化掉