前言:
当前我们对“c语言的pi输不出来”大概比较重视,咱们都想要剖析一些“c语言的pi输不出来”的相关内容。那么小编在网上收集了一些关于“c语言的pi输不出来””的相关知识,希望我们能喜欢,兄弟们快快来了解一下吧!圆周率,大家都不陌生吧,也就是“Pi”,用符号π来表示,一般就是数字3.14159265...
那这道编程题呢,相对于之前学过的编程题目而言,难度有所提升。
主要目的就是如文章标题写的那样,要计算圆周率。
没错,圆周率是可以计算出来的。
打出公式比较复杂,我直接把题目给贴上来好了。
梳理逻辑
这道题目的要求是什么,是输入小于1的阈值,然后在一行中输出满足阈值条件的近似圆周率,输出小数点后6位,而近似圆周率满足公式中的最后一项的值要小于给定的阈值。
比方说给定阈值0.01,那么计算圆周率的最后一项如果小于0.01,就到此为止,然后把该圆周率的值给打印出来。
1、输入小于1的阈值,那显然是要用到float浮点型来表示输入阈值的数据类型了。
2、关键难度在于如何得到最后一项,以及如何得到pi的值。
我们可以仔细观察,最后一项其实是由n的阶乘去除以所有奇数的乘积。
n的阶乘我之前讲过,就是从第一个数开始乘起乘到最后一个数。
而所有奇数的乘积也相对简单,就是从第一个奇数开始乘起乘到最后一个奇数。
3、保留小数点后六位,那就是要用到%0.6f来表示了。
代码实现
//计算圆周率#include<stdio.h>int main(){ float n; float m=1;//n! float q=1; float pi=1; float w=0; scanf("%f", &n);//阈值 int i = 1; for(w = 1; w >= n;i++){ q = q*(2*i+1); m = m*i; w = m/q; pi = pi + w; } printf("%0.6f",2*pi);}
可以发现,这里只需要用到一个for循环即可,至于求n的阶乘与所有奇数的乘积,相对来说也是比较简单的,就是用数值本身去乘以相应的公式即可。
结果测试总结
总的来说,这道题目并没有想象中的那么难,关键还是题目的逻辑要盘清楚,否则就会像我最开始做题时犯的错误一样,容易出现问题。
标签: #c语言的pi输不出来