会飞的东北人 发表于 2020-11-6 15:29:18

求解问题出在哪里

请问我错在哪里??
老师讲的标准答案我是理解的,我就想知道我这种错在哪里?

sunrise085 发表于 2020-11-6 15:34:44

本帖最后由 sunrise085 于 2020-11-6 15:36 编辑

因为n和k都是int类型,if语句的条件 k/(2*n+1)为0,所以第一次循环就进入了else,break跳出循环了
若不想改类型,可以这样写
k/(2*n+1)
改为
k*1.0/(2*n+1)

另外,下次发帖请不要贴图,直接复制代码,你是要别人再敲一遍代码么?
若不会贴代码,看这里:新手必读

会飞的东北人 发表于 2020-11-6 15:40:50

sunrise085 发表于 2020-11-6 15:34
因为n和k都是int类型,if语句的条件 k/(2*n+1)为0,所以第一次循环就进入了else,break跳出循环了
若不想 ...

谢谢大佬解答,下次直接复制代码,谢谢大佬

sunrise085 发表于 2020-11-6 15:43:46

会飞的东北人 发表于 2020-11-6 15:40
谢谢大佬解答,下次直接复制代码,谢谢大佬

问题解决了,请给评个最佳答案。早点结贴

jackz007 发表于 2020-11-6 15:49:33

本帖最后由 jackz007 于 2020-11-6 16:15 编辑

#include <stdio.h>

main(void)
{
      double pi , e                                                                     ;
      long long d , f , k                                                               ;
      scanf("%lf" , & e)                                                                  ;
      for(pi = 1.0 , k = 3 , f = - 1 ; 1.0 / k >= e ; k += 2 , f = - f) pi += f * 1.0 / k ;
      printf("pi = %.8lf\n" , pi * 4)                                                   ;
}
      编译、运行实况:
D:\0002.Exercise\C>g++ -o pi pi.c

D:\0002.Exercise\C>pi
1e-8
pi = 3.14159263

D:\0002.Exercise\C>

风过无痕1989 发表于 2020-11-6 22:36:07

会飞的东北人 发表于 2020-11-6 15:40
谢谢大佬解答,下次直接复制代码,谢谢大佬

别人给了你帮助,选出最佳答案,就是最好的报答
页: [1]
查看完整版本: 求解问题出在哪里