高级语言程序设计__第四章例子 用C语言实现计算π的值(近似值)

用下列公式计算 π的值:π/4= 1- 1/3 + 1/5 -1/7+...  ±1/n  ,  精度要求为   |1/n|<  10的-4次方

分析 : 设计变量s存放每项的正负符号,  n 存放每项的分母, t  存放每项

             在do-while 循环体中首先计算出当前一项  t=s/n,  将t 存放到结果pi中 =pi+t,  然后计算下一项符号s= s*-1;     计算下一项分母,是前一项分母+2, 即n  +=2;  

代码如下:

#include <math.h>

void main(){
     /*pi为最终结果,  n为每项的分母, s为每项的正负号, t为当前项***/
	float pi=0.0,  n=1.0,s=1.0, t;
	do{
		t=s/n;				/**求当前项**/
		pi +=t;
		s *=-1.0;			/**求下一项的符号**/
		n +=2;				/**求下一项的分母*/
	
	}while(fabs(t)>=1e-4);    /**控制循环条件是当前项精度**/

	printf("pi=%f\n",  4 * pi);  /***输出pi 的近似值*/

}

注意这里用到math.h系统函数, 在C语言中,  math.h包括以下数学函数

1 求绝对值 int abs(int x)  返回值在0~32767,    如果x为-32768, 则返回-32768
2 求绝对值 long labs(long x)  
3 求绝对值 double fabs(double x)
4 求小于或等于x的最大整数  double floor(double x),  floor(-10.5)=-11.0,  floor(10.9)=10.0
5 求小于或等于x的最大整数 double ceil(double x)     floor(-10.5)=-10.0,  floor(10.9)=11.0
6 求正平方根 double sqrt(double x),  注意x必须大于0
7 求常用对数 double log10(double  x),    注意x必须大于0
8 求自然对数 double log(double x)  返回lnx,     注意x必须大于0
9 求指数函数  double exp(double x)   返回e的x次方
10 求10的x次方  double pow10(int x)    pow10(-1)=0.1
11 求x的y次方 double  pow(double x, double y),  注意不能x,  y都小于0 或x<=0, y不是整数 这两种情况
12 求正弦值 double sin(double x)  x以弧度为单位,  如是是角度,用 x*3.14159/180   转换成弧度, 例  sin(90*3.14159/180)=1
13 求余弦值 double cos(double x)
14 求正切值 double tan(double x)
15  将字符串转换成浮点数函数   double   atof(char *x) 
     返回x所指向的字符串的实数转换成的实型数据
     atof("12.3')=12.3;  atof("0.123e2") = 12.3;   atof("1A2.345")=1.0
     
16  将字符串转换成整数函数  int  atoi(char  *x)     
      返回x所指向的字符串的整数转换成的整型数据
      atoi("12")=12;  atoi("1A2")=1;

猜你喜欢

转载自blog.csdn.net/ximanni18/article/details/83244350
今日推荐