C语言常用数学函数及其用法

C语言常用数学函数及其用法


转帖地址:http://old.blog.edu.cn/user5/282721/archives/2008/2098559.shtml



三角函数:(所有参数必须为弧度)
 
 1.acos


  函数申明:acos  (double x);
   用途:用来返回给定的 X 的反余弦函数。


 2.asin


   函数申明:asin  (double x);
   用途:用来返回给定的 X 的反正弦函数。


 3.atan 


   函数申明:atan  (double x);
   用途:用来返回给定的 X 的反正切函数。


 4.sin


   函数声明:sin   (double x);
   用途:用来返回给定的 X 的正弦值。


 5.cos


   函数声明:cos   (double x);
   用途:用来返回给定的 X 的余弦值。


 6.tan


   函数声明:tan   (double x);
   用途:用来返回给定的 X 的正切值。


 7.atan2


   函数声明:atan2 (double y, double x);
   用途:返回给定的 X 及 Y 坐标值的反正切值
 
其他函数:


 8.atof 


  函数名: atof  (const char *s);
  功  能: 把字符串转换成浮点数
  用  法: double atof(const char *nptr);
  程序例:
   #i nclude
   #i nclude


   int main(void)
   {


    float arg,*point=&arg;
    float f;
    char *str = "12345.67";


    f = atof(str);
    printf("string = %s float = %f\n", str, f);
    return 0;
   }


 9. ceil  和 floor


   函数名: ceil  
                 floor 
   功  能: 向上舍入
        向下舍入
   用  法: double ceil(double x);
        double floor(double x);
   程序例:


   #i nclude


   int main(void)
   {
    double number = 123.54;
    double down, up;


    down = floor(number);
    up = ceil(number);


    printf("original number     %5.2lf\n", number);
    printf("number rounded down %5.2lf\n", down);
    printf("number rounded up   %5.2lf\n", up);


    return 0;
  }该程序运行结果:original number     123.54
                   number rounded down 123.00
                   number rounded up   124.00
 


 10.fabs


    函数名:fabs
    功能:求浮点数x的绝对值.
    用法:fabs  (double x);


 11.fmod


    函数名: fmod
    功  能: 计算x对y的模, 即x/y的余数
    用  法: double fmod(double x, double y);
    程序例:


    #i nclude
    #i nclude


    int main(void)
    {
     double x = 5.0, y = 2.0;
     double result;


     result = fmod(x,y);
     printf("The remainder of (%lf / %lf) is \
          %lf\n", x, y, result);
     return 0;
    }


 12.abs


   函数名:abs
   功能:返回整型数的绝对值.
   用法:Abs(number)
        number 参数可以是任意有效的数值表达式。如果 number 包含 Null,则返回 Null;如果是未初始化变量,则返回 0.


幂指数:


 13.exp


    函数名:exp
    功能:返回 e 的 n 次幂.
    用法:exp   (double x);


 14.frexp


    函数名: frexp
    功  能: 把一个双精度数分解为尾数的指数
    用  法: double frexp(double value, int *eptr);
    程序例:


    #i nclude
    #i nclude


    int main(void)
    {
      double mantissa, number;
      int exponent;
      number = 8.0;
      mantissa = frexp(number, &exponent);
      printf("The number %lf is ", number);
      printf("%lf times two to the ", mantissa);
      printf("power of %d\n", exponent);
      return 0;
    }


 15.log


    函数名:log
    功 能: 自然对数函数ln(x) 
    用 法: double log(double x); 
    程序例:


    #i nclude
    #i nclude
    int main(void) 
    { 
     double result; 
     double x = 8.6872; 
     result = log(x); 
     printf("The natural log of %lf is %lf\n", x, result); 
     return 0; 
    }


   log(x,y)=ln(y)/ln(x)


 16.ldexp


    函数名: ldexp 
    功 能: 计算value*(2的exp幂 ).
    用 法: double ldexp(double value, int exp); 
    程序例: 
    #i nclude 
    #i nclude 
    int main(void) 
    { 
     double value; 
     double x = 2; 
/* ldexp raises 2 by a power of 3 then multiplies the result by 2 */ 
     value = ldexp(x,3); 
     printf("The ldexp value is: %lf\n", value); 
     return 0; 
    } 运行结果为:2*2^3=16.
 
 17.log10


    函数名:log10
    功能:返回以 10 为底的对数.
    用法:log10 (double x);


 18.sqrt


    函数名:sqrt
    功能:返回指定数字的平方根.
    用法:sqrt  (double x);


 19.modf


    函数名:modf
    功  能: 把数分为指数和尾数
    用  法: double modf(double value, double *iptr);
    程序例:
    #i nclude
    #i nclude
    int main(void)
   {
    double fraction, integer;
    double number = 100000.567;
    fraction = modf(number, &integer);
    printf("The whole and fractional parts of %lf are %lf and %lf\n",number, integer, fraction);
    return 0;
   }


 20.pow


    函数名:pow
    功能:返回指定数字的指定次幂.
    用法:pow   (double x, double y);(将返回x的y次幂)
 
双曲函数:
 
 21.cosh


    函数名:cosh 
    功能:返回指定角度的双曲余弦值.
    用法:Double  Cosh(double x(以弧度计量的角度)) ;


 22.sinh


    函数名:sinh
    功能:返回指定角度的双曲正弦值。
    用法:sinh  (double x);(其中参数x必须为弧度制)
 
 23.tanh


     函数名:tanh
    功能:回指定角度的双曲正切值.

    用法:tanh  (double x);


[补充]C语言常用数学函数及其用法
yuyoutan 发表于 - 2008-4-18 19:27:00
 


C库函数中没有求平方的函数,因为求平方实在是太简单了:我们可以通过以下俩种方法来求:


#i nclude
main()
{double squar,x;
scanf("%lf",&x);
squar=x*x;
printf("the squar of %lf is %lf\n",x,squar);
}


如果觉得麻烦的话,你可以把它直接定义一个自己的函数,然后以后要用的话,直接引用就行.
#i nclude
double SQUAR(double a)
{double squar;
squar=a*a;
return squar;
}
main()
{double squar,x;
scanf("%lf",&x);
squar=SQUAR(x);
printf("the squar of %lf is %lf\n",x,squar);
}


 


C中也没有给出如何求解log(a)[b];对于这个,我们可以利用数学关系来求,即换底公式


       log(a)[b]=log(e)[b]/ log(e)[a]        (由于C库函数中含有求自然对数的函数 log()


我们同样可以把它定义为自己的函数,以便以后直接引用:


#i nclude
#i nclude
double LOG(double x,double y)
{double result;
 result=log(y)/log(x);
 return(result);
}
main()
{double a,b,value;
 scanf("%lf,%lf",&a,&b);
 value=LOG(a,b);
 printf("\nthe value is:%lf\n",value);
}


至于如何将自己所定义的函数保留下来以便随时都可以调用,只需要将功能函数保存为*.h文件,并将之保存到C标准库函数的相应文件夹中,就可以了..................


其实C标准库中有很多数学函数并没有囊括在内,我们都可以自己定义与之对应的函数.然后将之添加到C库中,以便自己以后的使用方便.

你可能感兴趣的:(其它语言)