C语言重新学59——学习头文件math.h(二)

打印 上一主题 下一主题

主题 1116|帖子 1116|积分 3348

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
       继续学习头文件<math.h>,编号接续前文。
六、三角函数
       math.h中的三角函数包罗:
       acos():反余弦,参数范围-1至+1,返回值double类型:0~PI
       asin():反正弦,参数范围-1至+1,返回值double类型:-PI/2~PI/2
       atan():反正切,参数范围-1至+1,返回值double类型:-PI/4~PI/4
       atan2():反正切(这个函数必要两个参数对边和邻边,且这两个边还放在十字坐标系中,因此结果会反应出在哪个象限)
       cos():余弦,参数为弧度值,范围0~2*PI,返回值double类型:-1~+1
       sin():正弦,参数为弧度值,范围0~2*PI,返回值double类型:-1~+1
       tan():正切,参数为弧度值,范围0~2*PI(不等于PI/2、3/4PI),返回值double类型:0~无穷大
       以上函数使用起来很简朴,注意参数范围即可。
七、指数函数和对数函数
       exp():计算e的x次乘方即e^x;返回值double类型
       exp2():计算2的乘方,即2^x;返回值double类型
       log():计算以e为底的自然对数;返回值double类型
       log2():计算以2为底的对数;返回值double类型
       log10():计算以10为底的对数;返回值double类型
八、函数frexp()
       功能:将参数分解成浮点数*以2为底的指数部分(即x*2^n)
       使用格式:frexp(参1,参2);
          参1:待分解的浮点数
          参2:int*指针(指向2的n次方的n)
        返回值:double类型(即分解成的浮点数)
        分析:如果参1为0,则返回值及参2均未0
九、函数ilogb()
       功能:返回参数的指数部分(底数为FLT_RADIX,值一样平常是2)
       使用格式:ilogb(参1);
          参1:double类型的数
       返回值:返回int类型的指数部分
十、函数ldexp()
       功能:将一个double类型的数x与2的整型指数n合成一个double数,即将x*2^n形式的数合成一个double数。
       使用格式:ldexp(参1,参2);
         参1:double类型的浮点数(x*2^n中的x)
         参2:int类型的指数部分(x*2^n中的n)
       返回值:合成的double类型结果
十一、实验程序
  1. #include<stdio.h>
  2. #include<math.h>
  3. #define PI 3.1415926
  4. int main(void)
  5. {
  6. //实验三角函数
  7.         float a = sinf(30 * PI / 180);
  8.         printf("30°的sin值:%f\n", a);//运行结果:30°的sin值:0.500000
  9.         float b = asinf(0.5)*180/PI;
  10.         printf("0.5的asin值(度):%f\n",b);//运行结果:0.5的asin值(度):30.000000
  11. //实验指数函数和对数函数
  12.         double e = exp(1);
  13.         printf("e的值等于:%f\n", e);//运行结果:e的值等于:2.718282
  14.         double x = log10(2);
  15.         printf("以10为底2的对数:%f\n", x);//运行结果:以10为底2的对数:0.301030
  16. //实验函数frexp()
  17.         double y= 22222.22;
  18.         int n = 0;
  19.         double fr = frexp(y, &n);
  20.         printf("22222.22分解结果:%f*2^%d\n", fr, n);//运行结果:22222.22分解结果:0.678168*2^15
  21. //实验函数ilogb()
  22.         double z = 1025;
  23.         int c = ilogb(z);
  24.         printf("1024以2为底的指数:%d\n", c);
  25. //实验函数ldexp
  26.         double res = ldexp(2.32, 8); //函数2.32*2^8计算出double结果
  27.         printf("2.32*2^8=%f\n", res);//运行结果:2.32*2^8=593.920000
  28.         getchar();
  29.         return 0;
  30. }
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

笑看天下无敌手

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表