关闭

c语言库函数学习2(math库)

2048人阅读 评论(0) 收藏 举报
/*
  #include <stdlib.h>
  int abs( int num );
  double fabs( double arg );
  long labs( long num );
    函数返回num的绝对值

  #include <math.h>
  double acos( double arg );
    函数返回arg的反余弦值,arg的值应该在-1到1之间

  #include <math.h>
  double asin( double arg );
    函数返回arg的反正弦值,arg的值应该在-1到1之间

  #include <math.h>
  double atan( double arg );
    函数返回arg的反正切值

  #include <math.h>
  double atan2( double y, double x );
    函数返回y/x的反正切值,并且它可以通过x,y的符号判断
    (x,y)所表示的象限,其返回的也是对应象限的角度值

  #include <math.h>
  double ceil( double num );
  double floor( double arg );
    ceil函数返回不小于num的最小整数,如num = 6.04, 则返回7.0
    floor函数返回不大于num的最大的数,如num = 6.04, 则返回6.0

  #include <math.h>
  double cos( double arg );
  double sin( double arg );
  double tan( double arg );
    函数分别返回arg的余弦,正弦,正切值,arg都是用弧度表示

  #include <math.h>
  double cosh( double arg );
  double sinh( double arg );
  double tanh( double arg );
    函数分别返回arg的双曲余弦,双曲正弦,双曲正切,arg都是用弧度表示的

  #include <math.h>
  double fmod( double x, double y );
    函数返回x/y的余数

  #include <stdlib.h>
  div_t div( int numerator, int denominator );
  ldiv_t ldiv( long numerator, long denominator );
    函数返回numerator/demominator操作的,返回一个结构体div_t(ldiv_t)
    div_t(ldiv_t)结构体中定义了quot(商),rem(余数)

  #include <math.h>
  double exp( double arg );
    函数返回e(自然底数)的arg次

  #include <math.h>
  double log( double num );
    函数返回num的自然对数值num应为大于0的数

  #include <math.h>
  double log10( double num );
    函数返回num以10为底的对数值,num也应该为大于0的数

  #include <math.h>
  double pow( double base, double exp );
    函数返回以base为底的exp次,不允许的取值范围:
    当base 为 0 且exp 小于或等于 0
    当base 为 负数 且 exp 不为整数

  #include <math.h>
  double sqrt( double num );
    函数返回num的开方值,num应该为不小于0的值

  #include <math.h>
  double frexp( double num, int* exp );
    函数可以获取科学计数法的参数
    函数返回在0.5到1.0之间的值, 传入exp的参数用于返回num的指数
    (以2为底数计算,即:num = mantissa * (2 ^ exp))

  #include <math.h>
  double ldexp( double num, int exp );
    函数返回num*(2^exp)的值,如果结果溢出,返回HUGE_VAL 

  #include <math.h>
  double modf( double num, double *i );
    函数分割num,将整数部分填入i的值,小数部分返回


*/



#include 
<stdio.h>
#include 
<stdlib.h>
#include 
<math.h>

void main()
{
    
double y = 10;
    
double x = -20;
    printf(
"atan2(10, -20) result is %lf ", atan2(y, x));
    printf(
"atan(10/20) result is %lf ", atan(y/x));
    printf(
" ");

    x 
= 35.6;
    y 
= 10.5;
    printf(
"%lg divide %lg remind %lg ", x, y, fmod(x, y));
    printf(
"the principle is : (%lg - %lg) / %lg = %lg ", x, fmod(x, y), y, (x - fmod(x, y)) / y);
    printf(
" ");

    
int numerator = 86;
    
int denominator = 10;
    div_t rst 
= div(numerator, denominator);
    printf(
"%d divide %d : the quotient is %d, the reminder is %d ", numerator, denominator, rst.quot, rst.rem);
    printf(
" ");

    printf(
" e is equal to %lf ", exp(1));
    printf(
" e 的 10.3 次是 : %lf ", exp(10.3));
    printf(
" ");
    
    
double logvalue = 10.3;
    
double logerr = -1;
    printf(
"the log(%lg) is : %lf ", logvalue, log(logvalue));
    printf(
"the log(%lg) is : %lf ", logerr, log(logerr));
    printf(
" ");

    printf(
"the log10(%lg) is : %lf ", logvalue, log10(logvalue));
    printf(
"the log10(%lg) is : %lf ", logerr, log10(logerr));
    printf(
" ");

    
double base = 2;
    
double exp = 2.5;
    
double baseerr = 0;
    
double experr = -1;
    
double baseerr2 = -4;
    
double experr2 = 2.5;
    printf(
" %lg 的 %lg 次为 : %lg "base, exp, pow(base, exp));
    printf(
" %lg 的 %lg 次为 : %lg ", baseerr, experr, pow(baseerr, experr));
    printf(
" %lg 的 %lg 次为 : %lg ", baseerr2, experr2, pow(baseerr2, experr2));
    printf(
" ");

    
double numScientific = 234.0989034;
    
int expScientific;
    
double mantissa = frexp(numScientific, &expScientific);
    printf(
"the mantissa of the %lf is : %lf. ", numScientific, mantissa);
    printf(
"the exponent of the %lf is : %d. ", numScientific, expScientific);
    printf(
"the principle is %lf : %lf * ( 2 ^ %d ) = %lf . ", numScientific, mantissa, expScientific, 
                                                                ldexp(mantissa, expScientific));
    printf(
" ");

    
double intDec;
    
double mantissaDec = modf(numScientific, &intDec);
    printf(
"the decimal mantissa of the %lf is : %lf . ", numScientific, mantissaDec);
    printf(
"the decimal exponent of the %lf is : %lg . ", numScientific, intDec);
    printf(
" ");
}
 
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:45415次
    • 积分:667
    • 等级:
    • 排名:千里之外
    • 原创:21篇
    • 转载:2篇
    • 译文:0篇
    • 评论:5条