溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

c語(yǔ)言有開(kāi)根號(hào)運(yùn)算符嗎

發(fā)布時(shí)間:2023-03-06 15:05:30 來(lái)源:億速云 閱讀:114 作者:iii 欄目:編程語(yǔ)言

這篇文章主要介紹“c語(yǔ)言有開(kāi)根號(hào)運(yùn)算符嗎”的相關(guān)知識(shí),小編通過(guò)實(shí)際案例向大家展示操作過(guò)程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“c語(yǔ)言有開(kāi)根號(hào)運(yùn)算符嗎”文章能幫助大家解決問(wèn)題。

在c語(yǔ)言中,沒(méi)有開(kāi)根號(hào)運(yùn)算符,開(kāi)根號(hào)使用的是內(nèi)置函數(shù)“sqrt()”,使用語(yǔ)法“sqrt(數(shù)值x)”;例如“sqrt(4)”,就是對(duì)4進(jìn)行平方根運(yùn)算,結(jié)果為2。sqrt()是c語(yǔ)言?xún)?nèi)置的開(kāi)根號(hào)運(yùn)算函數(shù),其運(yùn)算結(jié)果是函數(shù)變量的算術(shù)平方根;該函數(shù)既不能運(yùn)算負(fù)數(shù)值,也不能輸出虛數(shù)結(jié)果。

在c語(yǔ)言中,沒(méi)有開(kāi)根號(hào)運(yùn)算符,開(kāi)根號(hào)使用的是內(nèi)置函數(shù)“sqrt()”。

c語(yǔ)言 sqrt()函數(shù)

C語(yǔ)言中sqrt意思是平方根函數(shù),計(jì)算一個(gè)非負(fù)實(shí)數(shù)的平方根。

sqrt()是c語(yǔ)言?xún)?nèi)置的開(kāi)根號(hào)運(yùn)算函數(shù),其運(yùn)算結(jié)果是函數(shù)變量的算術(shù)平方根。

sqrt()函數(shù)既不能運(yùn)算負(fù)數(shù)值,也不能輸出虛數(shù)結(jié)果。

語(yǔ)法:

double sqrt(double x)

返回值:

  • 該函數(shù)返回 x 的平方根。

sqrt()函數(shù)的使用

在頭文件中加入#include<math.h>之后使用sqrt即可,可以用double定義

#include<math.h>
#include<stdio.h>
 
int main(void)
{
    printf("%lf",sqrt(4));
 
    return 0;
}

我們知道根號(hào)4的結(jié)果是2,輸出結(jié)果也應(yīng)該是2,我們一起看看實(shí)際輸出的結(jié)果是否與我們理想中輸出的結(jié)果一致。

輸出結(jié)果:

2.000000

問(wèn)題:

Q1:”sqrt函數(shù)參數(shù)的類(lèi)型不是雙精度浮點(diǎn)型嗎?為什么在上文實(shí)例中sqrt函數(shù)的參數(shù)是一個(gè)整數(shù),難道不是浮點(diǎn)數(shù)嗎?這樣傳參會(huì)不會(huì)出現(xiàn)問(wèn)題呢? “

R1:有必要在這里為提出這個(gè)問(wèn)題的讀者解答一下:“向sqrt函數(shù)傳遞浮點(diǎn)數(shù)是完全正確的,一點(diǎn)錯(cuò)誤也沒(méi)有。當(dāng)然向sqrt函數(shù)傳遞一個(gè)整數(shù)也沒(méi)有問(wèn)題,因?yàn)樵趕qrt函數(shù)內(nèi)傳遞一個(gè)整型變量會(huì)自動(dòng)轉(zhuǎn)換為雙精度浮點(diǎn)型。那我們可不可以避免參數(shù)是整型轉(zhuǎn)換為雙精度浮點(diǎn)型的過(guò)程呢?當(dāng)然可以。但我們需要對(duì)上文中的代碼進(jìn)行一小部分的修改:

#include<math.h>
#include<stdio.h>
 
int main(void)
{
    printf("%lf",sqrt(4.0));
 
    return 0;
}

這樣更改便可以避免參數(shù)是整型轉(zhuǎn)換為浮點(diǎn)型的過(guò)程,同時(shí)代碼變得更加地準(zhǔn)確。

Q2:“printf函數(shù)內(nèi)的第一個(gè)參數(shù),也就是那個(gè)奇怪字符串(“%lf”),為什么那個(gè)奇怪字符串沒(méi)有輸出?取而代之的是一個(gè)數(shù)字”

R2:這個(gè)問(wèn)題問(wèn)的非常好!如果你只是單純地認(rèn)為這只是個(gè)奇怪的字符串似乎也沒(méi)錯(cuò),因?yàn)槿绻堑谝淮谓佑|,難免會(huì)感到陌生,這非常正常。但“%lf”并不是一個(gè)奇怪的字符串,而是一個(gè)占位符,我們?nèi)粘?xiě)C程序時(shí)幾乎離不開(kāi)它。您可以這樣理解:“printf是’格式化輸出‘的意思,您可以把這個(gè)占位符理解為“格式化輸出”中的格式化”,它可以按照占位符的內(nèi)容輸出后面的參數(shù),譬如在同一個(gè)printf函數(shù)下,第一個(gè)占位符輸出的是第二個(gè)參數(shù)的內(nèi)容,第二個(gè)占位符輸出的是第三個(gè)參數(shù)的內(nèi)容,以此類(lèi)推。區(qū)分是否是占位符的方法也很簡(jiǎn)單,看一個(gè)段字符串的前面是否出現(xiàn)“%”(百分號(hào)),如果有,代表著這是個(gè)占位符,如果沒(méi)有,則代表不是占位符。在C語(yǔ)言中,占位符不僅僅只有“%lf”,還有許許多多的占位符,以下表格是C語(yǔ)言常用的占位符,每個(gè)占位符所對(duì)應(yīng)的輸入輸出格式都是不同的。

%d以整型的形式輸入輸出
%f以單精度浮點(diǎn)型的形式輸入輸出
%lf以雙精度浮點(diǎn)型的形式輸入輸出
%s

以字符串的形式輸入輸出

討論:

為了使讀者更好地理解,我們可以對(duì)上例的代碼進(jìn)行一個(gè)粗略的翻譯(這里作者將上例的代碼“搬運(yùn)”到了下面當(dāng)中,這樣做的原因是為了避免讀者回看上文)。

#include<math.h>
#include<stdio.h>
 
int main(void)
{
    printf("%lf",sqrt(4.0));
 
    return 0;
}

翻譯:在程序中先包含兩個(gè)頭文件,它們分別是:math.h(數(shù)學(xué)頭文件)與stdio.h(標(biāo)準(zhǔn)輸入輸出頭文件)。隨后我們需要編寫(xiě)main函數(shù),”main“函數(shù)的數(shù)據(jù)類(lèi)型是int,參數(shù)的數(shù)據(jù)類(lèi)型是“void”。為什么要編寫(xiě)“main”這個(gè)函數(shù)呢?因?yàn)樗钦麄€(gè)C程序的入口,在main函數(shù)的函數(shù)體內(nèi)有兩條語(yǔ)句,第一條是“printf("%lf",sqrt(4.0));”,它翻譯過(guò)來(lái)的意思是:“以雙精度浮點(diǎn)型的形式對(duì)sqrt函數(shù)的返回值進(jìn)行輸出(注意:當(dāng)一個(gè)函數(shù)作為另一個(gè)函數(shù)的參數(shù)時(shí),程序會(huì)先將一個(gè)函數(shù)的返回值計(jì)算出來(lái)隨后再傳遞給另一個(gè)函數(shù)的參數(shù))。”最后一條語(yǔ)句是“return 0;”,函數(shù)是必須需要一個(gè)返回值的,但void類(lèi)型除外,我們的這個(gè)main函數(shù)的數(shù)據(jù)類(lèi)型是int,并不是void,所以main函數(shù)需要一個(gè)返回值,雖然在多數(shù)編譯器是省略main函數(shù)的返回值的,但即便如此,最好將返回值加上,這是個(gè)良好的習(xí)慣!。

(注意:不要將main函數(shù)的參數(shù)列表中的void看成是main函數(shù)的數(shù)據(jù)類(lèi)型)

關(guān)于“c語(yǔ)言有開(kāi)根號(hào)運(yùn)算符嗎”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI