题目一:

利用公式①计求π的近似值,要求累加到最后一项小于10^(-6)为止。

程序代码:

#include <stdio.h>#include <stdlib.h>#include <math.h>int main(){float s=1;float pi=0;float i=1.0;float n=1.0;while(fabs(i)>=1e-6){pi+=i;n=n+2;// 这里设计的很巧妙,每次正负号都不一样s=-s;i=s/n;}pi=4*pi;printf("pi的值为:%.6f\n",pi);return 0;}

运行结果:

pi的值为:3.141594

上面的代码,先计算π/4的值,然后再乘以4,s=-s; 用的很巧妙,每次循环,取反,结果就是,这次是正号,下次就是负号,以此类推。

题目二:

根据公式②,用前100项之积计算π的值。

本题提供了两种解法。

[代码一]程序代码:

#include <stdio.h>#include <math.h>int main(){float pi=1;float n=1;int j;for(j=1;j<=100;j++,n++){if(j%2==0){pi*=(n/(n+1));}else{pi*=((n+1)/n);}}pi=2*pi;printf("pi的值为:%.7f\n",pi);return 0;}

运行结果:

pi的值为:3.1260781

此算法的主要思想:

观察分子数列:

a1=2  a2=2

a3=4  a4=4

a5=6  a6=6

......

由此得知,当n为偶数时,an=n;当n为奇数时,an=a(n+1)=n+1;

同理观察分子数列:

b1=1 b2=3

b3=3 b4=5

b5=5 b6=7

b7=7 b8=9.......

由此可知,当n为奇数时,bn=n,当n为偶数时,bn=b(n+1)。

综上可知,当n为奇数时,每次应乘以(n+1)/n。当n为偶数时,每次应乘以n/(n+1)。

————————————

[代码二]程序代码:

#include <stdio.h>#include <math.h>int main(){float term,result=1;int n;for(n=2;n<=100;n+=2){term=(float)(n*n)/((n-1)*(n+1));result*=term;}printf("pi的值为:%f\n", 2*result);return 0;}

运行结果:

pi的值为:3.126079

算法思想:

采用累乘积算法,累乘项为term=n*n/((n-1)*(n+1)); n=2,4,6,...100。步长为2。

最后,不管你是转行也好,初学也罢,进阶也可,如果你想学编程~

【值得关注】我的 C/C++编程学习交流俱乐部【点击进入】

问题答疑,学习交流,技术探讨,还有超多编程资源大全,零基础的视频也超棒~

【C语言程序设计】C语言求圆周率π(三种方法)相关推荐

  1. Java | Java语言在Eclipse控制台输入的三种方法

    写在前面的内容,java控制台输入浅尝辄止即可 >>> 文章目录 三种方法比较一览图 方法一:in/out public static final InputStream in//静 ...

  2. C语言中调用数组元素的三种方法:下标法、数组名法、指针法

    /*调用数组元素的三种方法:下标法.数组名法.指针法*/ #include<stdio.h> int main() {int a[] = { 1,2,3,4,5 }, i, * p;pri ...

  3. 【C语言】求最小公倍数三种方法

    第一种 在两个数中确定一个较大值赋值给整形变量m,变量m分别对a.b求余数,如果都被整除则m为a.b的最小公倍数,否则将m+1后赋给m,一直循环下去. #include<stdio.h> ...

  4. 易语言运行执行exe文件的三种方法

    易语言一个很初级的问题 ,如何运行exe文件,可以进行游戏的一键启动,软件的一键启动,方便控制操作. 1.和程序同目录 如果你要运行和你程序同目录下的 "****.exe",就用下 ...

  5. C语言特殊图案之菱形的三种方法---今日笔记

    小小白第一次写CSDN的博客啦! 第一次写正式的博客,大家凑合看吧,有什么问题可以留言哦. 题目:输出一个如下菱形图 方法一 ,利用循环控制输出. 解题思路:计算出每行包括7个字符,其中有的是空白字符 ...

  6. 求多项式解(三种方法MATLAB)

    function ex()N = 1000000;a = 1:N;x = 1;ticp1 =sum(a.*x.^[N-1:-1:0]);p1, toc % 直接计算 方法一tic, p2 = a(1) ...

  7. 随机投点法计算定积分java_科学网—0026:蒙特卡洛求定积分三种方法的理解 - 何成文的博文...

    蒙特卡洛主要思想就是采用粒子(大多是均匀分布生成的随机数,称为粒子)将积分符号转化为求和,从而实现快速求解目的.定积分求解主要有三种方法:随机投点法.平均值法.重要抽样法: 问题描述:如何求exp(x ...

  8. c语言程序π,C语言求圆周率π(三种方法)

    题目1) 利用公式①计求π的近似值,要求累加到最后一项小于10^(-6)为止. 题目2) 根据公式②,用前100项之积计算π的值. 题目1)提供了一种解法,题目2)提供了两种解法,请看解析. 题目1) ...

  9. c语言求圆周率 . 4,C语言求圆周率π(三种方法)(4页)-原创力文档

    C语言求圆周率π(三种方法) 题目1) 利用公式①计求π的近似值,要求累加到最后一项小于10^(-6)为止.题目2) 根据公式②,用前100项之积计算π的值.题目1)提供了一种解法,题目2)提供了两种 ...

  10. c语言数组最大可定义多少位_C语言求数组的最大值三种方法

    /* 黄哥Python培训 黄哥所写*/#include int maxValue(int* arr, int n);int maxRecursionValue(int* arr, int n);in ...

最新文章

  1. 充电 | 打开机器学习的大门,需要了解哪些知识?
  2. 在线绘图|差异分析——在线做时序分析
  3. 点击lable标出现下拉搜索框及选择功能
  4. android TextView 的setTextSize方法的使用
  5. Immutable Collections(3)Immutable List实现原理(中)变化中的不变
  6. java input 数组_请问如何input一个数组?
  7. 开机自启动redis
  8. oracle 函数_oracle中row_number、rank、dense_rank() 的区别(over函数)
  9. Robot Motion(模拟题bfs)
  10. c语言怎么把数字倒过来_c语言中如何实现输入一个整数实现倒序输出
  11. vue实时获取当前时间
  12. 百度网盘下载慢,解决方法
  13. 短视频运营的目标:引流并转化客户
  14. 利用LSTM对脑电波信号进行分类
  15. maya2018曲线创建管道
  16. redis内存理解---内存消耗
  17. Button与ImageButton
  18. OpenSSL中文手册之EVP库详解
  19. php中英文章,php统计中英文混合的文章字数
  20. 视频设计常用的几款开源软件

热门文章

  1. 有限元计算计算机配置,关于有限元分析的电脑配置问题
  2. SadpTool 海康设备网络搜索工具
  3. arm-linux-g++ crypto,在Ubuntu中找不到libcrypto
  4. FIT2CLOUD飞致云旗下开源项目DataEase成功进入GitHub趋势榜主榜
  5. H5文章分享给好友或朋友圈后如何生成自定义分享内容
  6. ESP8266的AT指令集
  7. 互联网产品经理好书推荐
  8. matlab 矩形窗汉明窗幅频特性对比
  9. 教孩子编程python 语言 nostarch 下载_教孩子学编程 Python语言版
  10. Epub360、iH5、Mugeda,三款专业级H5设计工具详评