龙空技术网

用C语言实现“计算圆周率”,基础编程由此开始(第十三节)

小萌九尾 425

前言:

当前我们对“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输不出来