用C语言求幂函数和指数函数的方法

C语言pow()函数:求x的y次方(次幂)
头文件:

#include <math.h>

pow() 函数用来求 x 的 y 次幂(次方),其原型为:

  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。

注意,使用 GCC 编译时请加入-lm。

【实例】请看下面的代码。

#include <stdio.h>
#include <math.h>
int main ()
{
  printf ("7 ^ 3 = %f\n", pow (7.0, 3.0) );
  printf ("4.73 ^ 12 = %f\n", pow (4.73, 12.0) );
  printf ("32.01 ^ 1.54 = %f\n", pow (32.01, 1.54) );
  return 0;
}

输出结果:

7 ^ 3 = 343.000000
4.73 ^ 12 = 125410439.217423
32.01 ^ 1.54 = 208.036691

C语言sqrt()函数:求给定值的平方根
头文件:

#include <math.h>

sqrt() 用来求给定值的平方根,其原型为:

  double sqrt(double x);

【参数】x 为要计算平方根的值。

如果 x < 0,将会导致 domain error 错误,并把全局变量 errno 的值为设置为 EDOM。

【返回值】返回 x 平方根。

注意,使用 GCC 编译时请加入-lm。

【实例计算200 的平方根值。】

#include <math.h>
main(){
  double root;
  root = sqrt(200);
  printf("answer is %f\n", root);
}

输出结果:

answer is 14.142136
(0)

相关推荐

  • C语言求幂计算的高效解法

    本文实例演示了C语言求幂计算的高效解法.很有实用价值.分享给大家供大家参考.具体方法如下: 题目如下: 给定base,求base的幂exp 只考虑基本功能,不做任何边界条件的判定,可以得到如下代码: #include <iostream> using namespace std; int cacExp(int base, int exp) { int result = 1; int theBase = 1; while (exp) { if (exp & 0x01) result =

  • C语言快速幂取模算法小结

    本文实例汇总了C语言实现的快速幂取模算法,是比较常见的算法.分享给大家供大家参考之用.具体如下: 首先,所谓的快速幂,实际上是快速幂取模的缩写,简单的说,就是快速的求一个幂式的模(余).在程序设计过程中,经常要去求一些大数对于某个数的余数,为了得到更快.计算范围更大的算法,产生了快速幂取模算法.我们先从简单的例子入手:求abmodc 算法1.直接设计这个算法: int ans = 1; for(int i = 1;i<=b;i++) { ans = ans * a; } ans = ans %

  • C语言判断一个数是否是2的幂次方或4的幂次方

    快速判断一个数是否是2的幂次方,若是,并判断出来是多少次方! 将2的幂次方写成二进制形式后,很容易就会发现有一个特点:二进制中只有一个1,并且1后面跟了n个0: 因此问题可以转化为判断1后面是否跟了n个0就可以了. 如果将这个数减去1后会发现,仅有的那个1会变为0,而原来的那n个0会变为1:因此将原来的数与去减去1后的数字进行与运算后会发现为零. 最快速的方法: (number & number - 1) == 0 原因:因为2的N次方换算是二进制为10--0这样的形式(0除外).与上自己-1的

  • 用C语言求幂函数和指数函数的方法

    C语言pow()函数:求x的y次方(次幂) 头文件: #include <math.h> pow() 函数用来求 x 的 y 次幂(次方),其原型为: double pow(double x, double y); pow()用来计算以x 为底的 y 次方值,然后将结果返回.设返回值为 ret,则 ret = xy. 可能导致错误的情况: 如果底数 x 为负数并且指数 y 不是整数,将会导致 domain error 错误. 如果底数 x 和指数 y 都是 0,可能会导致 domain err

  • C语言求圆周率的简单实现方法

    本文实例讲述了C语言求圆周率的方法.分享给大家供大家参考,具体如下: #include <stdio.h> #include <math.h> void main() { int s; float n,t,pi; t=1,pi=0;n=1.0;s=1; while(fabs(t)>1e-6) { pi=pi+t; n=n+2; s=-s; t=s/n; } pi=pi*4; printf("pi=%10.6f/n",pi); } 此处得出的结果可精确到小数

  • 使用C语言求N的阶乘的方法

    用递归法求N的阶乘 程序调用自身称为递归( recursion).它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解. 递归的能力在于用有限的语句来定义对象的无限集合. 一般来说,递归需要有边界条件.递归前进段和递归返回段.当边界条件不满足时,递归前进:当边界条件满足时,递归返回. #include <stdio.h> #include <string.h> #include <stdlib.h> long factorial(int n) {

  • 易语言注入dll调用函数的方法

    在我们的生活中那,如何操作上述标题的小问题,小编今天就在这里给大家分享一点我的小经验,来增加我们的体验,希望可以给你们带来帮助. 1.首先这不是注入DLL,这是导入DLL函数进PE文件,这个过程需要一个工具LordPE,网上都有可以自己去下载. 2我们知道一旦DLL函数被导入EXE文件的输入表,则EXE文件启动时会自动执行一遍该DLL的_启动子程序 函数, 3.所以我们可以把需要执行的指令放在该函数里面,然后记得在该函数的 公开 选项打上勾,然后编译. 4.接下来,我们打开LordPE,如下图

  • C语言实现字符串操作函数的实例

    C语言实现字符串操作函数的实例 在编写程序的过程中,我们经常使用到一些字符串函数,例如求字符串长度,拷贝字符串--,这些函数都在C标准库中存在,我们可以直接使用.但我们还需要掌握这些函数的实现方法,今天来看看一些常用的字符串操作函数的实现方法. 1.strlen strlen是用来求字符串长度的函数,字符串长度就是它所包含的字符个数. 今天给大家介绍三种实现strlen函数的方法 (1)定义一个计数器count //方式一:定义一个计数器 size_t my_strlen(const char

  • 易语言求a的N次方教程

    易语言求N次方,希望大家都能学懂. 非无私奉献,拒绝看经验不回复,学懂了记得按照下面做: 在底部点击相关按钮,给我投票和点赞. 有心得或者疑问,点击相关按钮反馈. 具体操作请看图. 1.易语言新建一个windows窗口 点击进入代码编辑区 2.我们要求2的2次方怎么操作呢? 我们要用到求次方这个函数 我们输入 求次方() 3.我们展开看看 发现有2个参数 4.这个2个参数好理解 我们全部输入2 5.我们输入调试输出 看看结果 6.这里就得到结果4.000000 默认保留了几位小数 我们想求a的N

  • 易语言求正玄值方法

    易语言求正玄值,希望大家都能学懂. 非无私奉献,拒绝看经验不回复,学懂了记得按照下面做: 在底部点击相关按钮,给我投票和点赞. 有心得或者疑问,点击相关按钮反馈. 具体操作请看图. 1.易语言新建一个windows窗口 点击进入代码编辑区 2.我们输入 求正弦 () 这个函数 3.展开这个函数 可以发现这个函数只有一个参数 4.这个参数我重点讲解 它的单位是弧度 我们一般用度数表示 角度转换城弧度 用角度乘以#pi / 180 我们输入30 × #pi ÷ 180 如图 5.我们结合 调试输出这

  • R语言的一个加法函数使用介绍

    我就废话不多说了,大家还是直接看代码吧~ ## R语言中的加法函数 add4 <- function(x, y) { x + y } 一个复杂一些的R语言程序 ## R语言程序 add2 <- function(x, y) { x + y } above10 <- function(x) { use <- x > 10 x[use] } above <- function(x, n) { use <- x>n x[use] } columnmean <

  • C语言求逆矩阵案例详解

    一般求逆矩阵的方法有两种,伴随阵法和初等变换法.但是这两种方法都不太适合编程.伴随阵法的计算量大,初等变换法又难以编程实现. 适合编程的求逆矩阵的方法如下: 对可逆矩阵A进行QR分解:A=QR 求上三角矩阵R的逆矩阵 求出A的逆矩阵:A^(-1)=R^(-1)Q^(H) 以上三步都有具体的公式与之对应,适合编程实现. C语言实现代码: #include <stdio.h> #include <math.h> #define SIZE 8 double b[SIZE][SIZE]={

  • C语言求两个正整数的最大公约数示例代码

    目录 前言 1.穷举法 2.欧几里得算法(辗转相除法) 3.递归方法 附:相减法 总结 前言 两个正整数的最大公约数(Greatest Common Divisor, GCD)是能够整除这两个整数的最大整数.两个正整数的最大公约数的求法有多种解答,本文就三种方法做详细介绍:穷举法.欧几里得算法(辗转相除法).递归方法. 我们从一道问题来引入:编写计算最大公约数的函数Gcd(),在主函数中调用该函数计算并输出从键盘任意输入的最大公约数. 1.穷举法 根据最大公约数的定义,我们可以采用一种最简单的方

随机推荐