欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

pow函数(数学次方)在c语言的用法,两种编写方法实例( 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值)

程序员文章站 2023-11-17 22:38:46
关于c语言里面pow函数,下面借鉴了某位博主的一篇文章: 头文件:#include pow() 函数用来求 x 的 y 次幂(次方),x、y及函数值都是double型 ,其原型为: double pow(double x, double y); pow()用来计算以x 为底的 y ......

关于c语言里面pow函数,下面借鉴了某位博主的一篇文章:

头文件:#include <math.h>

pow() 函数用来求 x 的 y 次幂(次方),x、y及函数值都是double型 ,其原型为:
    double pow(double x, double y);

pow()用来计算以x 为底的 y 次方值,然后将结果返回。设返回值为 ret,则 ret = xy。

可能导致错误的情况:
如果底数 x 为负数并且指数 y 不是整数,将会导致 domain error 错误。
如果底数 x 和指数 y 都是 0,可能会导致 domain error 错误,也可能没有;这跟库的实现有关。
如果底数 x 是 0,指数 y 是负数,可能会导致 domain error 或 pole error 错误,也可能没有;这跟库的实现有关。
如果返回值 ret 太大或者太小,将会导致 range error 错误。

错误代码:
如果发生 domain error 错误,那么全局变量 errno 将被设置为  edom;
如果发生 pole error 或 range error 错误,那么全局变量 errno 将被设置为 erange。
math.pow(底数,几次方)
如:double a=2.0;
    double b=3.0;
double c=math.pow(a,b);
就是2的三次方是多少;
c最终为8.0;
---------------------
作者:yuanbo_shaw
来源:csdn

 

 

 


 

 

 

下面做了一道例题,

计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。

我分别用了两种方法计算,第一种比较简单用了两个for循环,第二个采用pow函数,用了一个for循环:

第一个程序:

 

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 int main()
 4 {
 5     //将分成两部分进行
 6     int i;
 7     double j = 0.0, k = 0.0;
 8     int a;
 9     double b = 0.0, c = 0.0;
10     double d;
11     for (i = 1; i <= 50; i++){
12         j =1.0/ (2.0 * i - 1.0);
13         k = k + j;
14 
15     }
16     for (a = 1; a <= 50; a++){
17         b = -1.0/(2.0 * a);
18         c = c + b;
19 
20     }
21     d = k + c;
22     printf("%f\n", d);
23     system("pause");
24     return 0;
25 }

pow函数(数学次方)在c语言的用法,两种编写方法实例( 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值)

 

第二个程序:

 1 #include<stdio.h>
 2 #include<math.h>
 3 #include<stdlib.h>
 4 int main()
 5 {
 6     int i;
 7     double sum = 0.0, temp = 0.0;
 8     for (i = 1; i <= 100; i++)
 9     {
10         temp = pow(-1, i + 1);
11         sum = sum + temp * 1 / i;
12     }
13     printf("sum is %f\n", sum);
14     system("pause");
15     return 0;
16 }

运行结果一样,也是0.688172.