猴子吃桃问题c语言_c语言问题

原问题:c语言问题
分类:编程开发 > 最后更新时间:【2016-12-15 05:19:33】
问题补充:

#include<stdio.h>

int main(void)

{

int flag,n;

double eps,item,s;

printf("Input eps: ");

scanf("%lf",&eps);

flag=1;

s=0;

n=1;

do{

item =1/n;

s=s+(flag*item);

flag=-flag;

n=n+3;}

while(item<eps);

printf("s=%f\n",s);

return 0;

}

计算s=1-1/4+1/7-1/10……

输入1E-4,输出应为0.835699.

求找错!

最佳答案

改好的参考:

#include<stdio.h>
int main(void) //吐槽楼上的,不要误导.C/C++标准从来未支持过void main,只有上世纪古老的非标准编译器才用void main的,
{
int flag, n;
double eps, item, s;
printf("Input eps: ");
scanf("%lg", &eps); ///你输入的是科学计数法,所以要用%lg而非%lf
flag = 1;
s = 0;
n = 1;
do
{
item = 1.0 / n; //这个要有用1.0,否则会以整形运算
s = s + (flag * item);
flag = -flag;
n = n + 3;
}
while(item > eps); //是大于eps时循环而非小于
printf("s=%lf\n", s); //double要用%lf非%f
return 0;
}

  • 追答:
    看错楼上的了,但int main(void)当然要还是要用return 0;的,这个是标准的写法
    最佳答案由网友  whoami1978  提供
  • 公告: 为响应国家净网行动,部分内容已经删除,感谢网友理解。
    5

    分享到:

    其他回答

    其它网友回答:
    用了int main(void),就不要再写return 0;了。这是之一。

      推荐