c语言指数pow,C语言中的指数函数pow()问题
最近在學(xué)習(xí)C語言.寫了一點代碼.感覺程序代碼都是對的,編繹也通過了,然而結(jié)果卻總不是正確的.找了老半天,忽然感覺pow()這個函數(shù)有點怪.是數(shù)學(xué)庫里的一個函數(shù).前面沒加
#include
把它加上去了.結(jié)果就OK了.
然后我就很奇怪
1.為什么沒加#include 也能編繹通過?
2.沒加#include 中為什么使用pow()也能得出一個值?
于是,我實驗一下.
實驗一:
main()
{
double z;
z=pow(10,5);
printf("%lf/n",z);
}
輸出結(jié)果:
285.000000
實驗二:
#include
main()
{
double z;
z=pow(10,5);
printf("%lf/n",z);
}
輸出結(jié)果:
100000.000000
正確結(jié)果.
為了防止是實驗一的pow(10,5)不起作用,而只是變量z由于沒有初始化,只是隨機指向一個內(nèi)存地址.于是我又做了一個實驗,把z初始化.
實驗三:
main()
{
double z=0.0;
z=pow(10,5);
printf("%lf/n",z);
}
輸出結(jié)果:
285.000000
為了再確定實驗三的結(jié)果,,我又把Turboc2關(guān)了再開起,再運行一下實驗三.結(jié)果還是一樣.
通過實驗三,重新編繹,結(jié)果都是一樣,都是一個固定值285.000000.
然后,我把pow(10,5)中的參數(shù)該一下,再做實驗
實驗四:
main()
{
double z=0.0;
z=pow(10,4);
printf("%lf/n",z);
}
輸出結(jié)果:
285.000000
把第二個參數(shù)改成1,2,3,4.結(jié)果都一樣.
不過,當(dāng)我把參數(shù)改成浮點數(shù)時,如5.0突然結(jié)果變了
實驗五:
main()
{
double z=0.0;
z=pow(10,5.0);
printf("%lf/n",z);
}
輸出結(jié)果:
33.000000
突然感覺是不是pow()的兩個參數(shù)都必須是浮點數(shù)才能不用#include 就用算出正確結(jié)果,于是做了實驗六
實驗六:
main()
{
double z=0.0;
z=pow(10.0,5.0);
printf("%lf/n",z);
}
輸出結(jié)果:
255.000000
還是錯誤的結(jié)果.無語了...
突然想到是不是pow()有像JAVA一樣有函數(shù)重載.定義不同的參數(shù),就變成一個完全不一樣的函數(shù).于是上turboc2/include文件夾下去找math.h有關(guān)pow()的源代碼.結(jié)果只發(fā)現(xiàn)函數(shù)的定義,沒有源代碼.上網(wǎng)查.結(jié)果說,pow()是用匯編來實現(xiàn)了...(不過,發(fā)現(xiàn)了一個好網(wǎng)站MSDN:http://msdn.microsoft.com/zh-cn/express/default.aspx以前只是聽說但一直沒使用,仔細(xì)看看,發(fā)現(xiàn)里面的內(nèi)容都太NB了,全面)
然后,我又在想是不是turboc2編繹器的本身問題.又上網(wǎng)查了一下,查不到...
總結(jié)
以上是生活随笔為你收集整理的c语言指数pow,C语言中的指数函数pow()问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++语言编辑简单的计算器,c++编写简
- 下一篇: android 地图相册,时光地图相册