十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
頭文件:#include math.h
創(chuàng)新互聯(lián)始終堅(jiān)持【策劃先行,效果至上】的經(jīng)營(yíng)理念,通過(guò)多達(dá)10余年累計(jì)超上千家客戶的網(wǎng)站建設(shè)總結(jié)了一套系統(tǒng)有效的全網(wǎng)營(yíng)銷解決方案,現(xiàn)已廣泛運(yùn)用于各行各業(yè)的客戶,其中包括:成都搬家公司等企業(yè),備受客戶贊美。
sqrt() 用來(lái)求給定值的平方根,其原型為:double sqrt(double x);double sqrt(double x)。
x 為要計(jì)算平方根的值。
如果 x 0,將會(huì)導(dǎo)致 domain error 錯(cuò)誤,并把全局變量 errno 的值為設(shè)置為 EDOM。
返回 x 平方根。注意,使用 GCC 編譯時(shí)請(qǐng)加入-lm。實(shí)例計(jì)算200 的平方根值。
例子:
#include math.hmain(){??double root;??root = sqrt(200);??printf("answer is %f\n", root);}
輸出結(jié)果:answer is 14.142136。
擴(kuò)展資料:
使用sqrt函數(shù)需要注意的事項(xiàng):
1、sqrt函數(shù)運(yùn)行的是結(jié)果是算術(shù)平方根,即不能運(yùn)算處負(fù)數(shù)值,也不能輸出虛數(shù)結(jié)果。如需要得到算術(shù)平方根中的負(fù)數(shù)值,則應(yīng)該在sqrt函數(shù)前添加負(fù)號(hào)。
2、sqrt函數(shù)的參數(shù)必須是非負(fù)數(shù)值,如果是負(fù)數(shù)值,則輸出會(huì)報(bào)錯(cuò),即數(shù)值無(wú)效;如果參數(shù)是未定義的非數(shù)字變量,則按回車后也會(huì)報(bào)錯(cuò),即變量名有誤。
3、sqrt函數(shù)的計(jì)算精度與C語(yǔ)言設(shè)置的精度有關(guān),可以通過(guò)設(shè)置更改精度。
C語(yǔ)言中sqrt函數(shù)的使用方法:
C語(yǔ)言中sqrt函數(shù)是指的開(kāi)方運(yùn)算函數(shù),得到的結(jié)果是函數(shù)變量(可以是數(shù)值,也可以是變量名)的算術(shù)平方根。在VC6.0中的math.h頭文件的函數(shù)原型為doublesqrt(double)。
說(shuō)明:sqrt系SquareRootCalculations(平方根計(jì)算),通過(guò)這種運(yùn)算可以考驗(yàn)CPU的浮點(diǎn)能力。
程序例:
#include
#include
intmain(void)
{
doublex=4.0,result;
result=sqrt(x);//result*result=x
printf(“Thesquarerootof%fis%f\n”,x,result);
return0;
}
VC2008后為重載函數(shù),原型為floatsqrt(float),doublesqrt(double),doublelongsqrt(doublelong)
注意沒(méi)有sqrt(int),但是返回值可以為int。
注意事項(xiàng):
1.sqrt函數(shù)運(yùn)行的結(jié)果是算術(shù)平方根,即不能運(yùn)算出負(fù)數(shù)值,也不能輸出虛數(shù)結(jié)果。如需要得到算術(shù)平方根中的負(fù)數(shù)值,則應(yīng)該在sqrt函數(shù)前添加負(fù)號(hào)。
2.sqrt函數(shù)的參數(shù)必須是非負(fù)數(shù)值,如果是負(fù)數(shù)值,則輸出會(huì)報(bào)錯(cuò),即數(shù)值無(wú)效;如果參數(shù)是未定義的非數(shù)字變量,則按回車后也會(huì)報(bào)錯(cuò),即變量名有誤。
3.sqrt函數(shù)的計(jì)算精度與C語(yǔ)言設(shè)置的精度有關(guān),可以通過(guò)設(shè)置更改精度。
直接用兩個(gè)數(shù)(或變量)相乘就可以表示平方,比如x*x
不過(guò)如果,需要求m的n次方,就需要用到pow(x,y)乘方(包括開(kāi)方)這個(gè)庫(kù)函數(shù)了,使用pow(x,y)這個(gè)庫(kù)函數(shù),需要math.h頭文件。
其中x和y都是雙精度浮點(diǎn)(double)型。
#include"math.h"
U32sqrt_fun(U64x){
U32low=0;
U32high=x;
U32mid;
U64data;
while(low high){
mid=(low+high)/2;
data=(U64)mid*mid;
if(data x){
high=mid-1;
}else if(data x){
low=mid+1;
}else{
return(mid);
}
}
return(mid);
}
voidmain(void){
volatileU32td1,td2;
U64d=0x12345678ABCD;
td2=sqrt(d);
td1=sqrt_fun(d);
}
擴(kuò)展資料
C語(yǔ)言無(wú)參函數(shù)的定義:
dataType是返回值類型,它可以是C語(yǔ)言中的任意數(shù)據(jù)類型,例如int、float、char等。
functionName 是函數(shù)名,它是標(biāo)識(shí)符的一種,命名規(guī)則和標(biāo)識(shí)符相同。函數(shù)名后面的括號(hào)( )不能少。
body是函數(shù)體,它是函數(shù)需要執(zhí)行的代碼,是函數(shù)的主體部分。即使只有一個(gè)語(yǔ)句,函數(shù)體也要由{}包圍。
如果有返回值,在函數(shù)體中使用return語(yǔ)句返回。return出來(lái)的數(shù)據(jù)的類型要和dataType一樣。
這個(gè)是經(jīng)典的逐比特位確認(rèn)法,它專門用來(lái)求解32位整型的開(kāi)方。它認(rèn)為32位整型的開(kāi)方應(yīng)該是一個(gè)16位的整型。題主可以參考如下鏈接
逐比特位求32位整數(shù)開(kāi)方