求解问题出在哪里
请问我错在哪里??老师讲的标准答案我是理解的,我就想知道我这种错在哪里?
本帖最后由 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)
另外,下次发帖请不要贴图,直接复制代码,你是要别人再敲一遍代码么?
若不会贴代码,看这里:新手必读 sunrise085 发表于 2020-11-6 15:34
因为n和k都是int类型,if语句的条件 k/(2*n+1)为0,所以第一次循环就进入了else,break跳出循环了
若不想 ...
谢谢大佬解答,下次直接复制代码,谢谢大佬 会飞的东北人 发表于 2020-11-6 15:40
谢谢大佬解答,下次直接复制代码,谢谢大佬
问题解决了,请给评个最佳答案。早点结贴 本帖最后由 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> 会飞的东北人 发表于 2020-11-6 15:40
谢谢大佬解答,下次直接复制代码,谢谢大佬
别人给了你帮助,选出最佳答案,就是最好的报答
页:
[1]