C语言中的指数函数pow()问题

编程入门 行业动态 更新时间:2024-10-26 12:21:26

C语言中的<a href=https://www.elefans.com/category/jswz/34/1644674.html style=指数函数pow()问题"/>

C语言中的指数函数pow()问题

最近在学习C语言.写了一点代码.感觉程序代码都是对的,编绎也通过了,然而结果却总不是正确的.找了老半天,忽然感觉pow()这个函数有点怪.是数学库里的一个函数.前面没加

#include <math.h>

把它加上去了.结果就OK了.

然后我就很奇怪

1.为什么没加#include <math.h>也能编绎通过?

2.没加#include <math.h>中为什么使用pow()也能得出一个值?

于是,我实验一下.

实验一:

main()
{
  double z;
  z=pow(10,5);
  printf("%lf/n",z);
}

输出结果:

 285.000000

 

实验二:

#include <math.h> 

main()
{
  double z;
  z=pow(10,5);
  printf("%lf/n",z);
}

输出结果:

100000.000000

正确结果.

 

为了防止是实验一的pow(10,5)不起作用,而只是变量z由于没有初始化,只是随机指向一个内存地址.于是我又做了一个实验,把z初始化.

实验三:

main()
{
  double z=0.0;
  z=pow(10,5);
  printf("%lf/n",z);
}

输出结果:

285.000000

为了再确定实验三的结果,,我又把Turboc2关了再开起,再运行一下实验三.结果还是一样.

通过实验三,重新编绎,结果都是一样,都是一个固定值285.000000.

 

然后,我把pow(10,5)中的参数该一下,再做实验

实验四:

main()
{
  double z=0.0;
  z=pow(10,4);
  printf("%lf/n",z);
}

输出结果:

285.000000

把第二个参数改成1,2,3,4.结果都一样.

不过,当我把参数改成浮点数时,如5.0突然结果变了

 

实验五:

main()
{
  double z=0.0;
  z=pow(10,5.0);
  printf("%lf/n",z);
}

输出结果:

33.000000

突然感觉是不是pow()的两个参数都必须是浮点数才能不用#include <math.h>就用算出正确结果,于是做了实验六

实验六:

main()
{
  double z=0.0;
  z=pow(10.0,5.0);
  printf("%lf/n",z);
}

输出结果:

255.000000

还是错误的结果.无语了...

 

突然想到是不是pow()有像JAVA一样有函数重载.定义不同的参数,就变成一个完全不一样的函数.于是上turboc2/include文件夹下去找math.h有关pow()的源代码.结果只发现函数的定义,没有源代码.上网查.结果说,pow()是用汇编来实现了...(不过,发现了一个好网站MSDN:.aspx以前只是听说但一直没使用,仔细看看,发现里面的内容都太NB了,全面)

  然后,我又在想是不是turboc2编绎器的本身问题.又上网查了一下,查不到...

更多推荐

C语言中的指数函数pow()问题

本文发布于:2023-06-13 04:29:59,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/674137.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:指数函数   语言   pow

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!