您好,登錄后才能下訂單哦!
這篇文章主要介紹“c語言有開根號運算符嗎”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“c語言有開根號運算符嗎”文章能幫助大家解決問題。
在c語言中,沒有開根號運算符,開根號使用的是內置函數“sqrt()”,使用語法“sqrt(數值x)”;例如“sqrt(4)”,就是對4進行平方根運算,結果為2。sqrt()是c語言內置的開根號運算函數,其運算結果是函數變量的算術平方根;該函數既不能運算負數值,也不能輸出虛數結果。
在c語言中,沒有開根號運算符,開根號使用的是內置函數“sqrt()”。
c語言 sqrt()函數
C語言中sqrt意思是平方根函數,計算一個非負實數的平方根。
sqrt()是c語言內置的開根號運算函數,其運算結果是函數變量的算術平方根。
sqrt()函數既不能運算負數值,也不能輸出虛數結果。
語法:
double sqrt(double x)
返回值:
該函數返回 x 的平方根。
sqrt()函數的使用
在頭文件中加入#include<math.h>之后使用sqrt即可,可以用double定義
#include<math.h>
#include<stdio.h>
int main(void)
{
printf("%lf",sqrt(4));
return 0;
}
我們知道根號4的結果是2,輸出結果也應該是2,我們一起看看實際輸出的結果是否與我們理想中輸出的結果一致。
輸出結果:
2.000000
問題:
Q1:”sqrt函數參數的類型不是雙精度浮點型嗎?為什么在上文實例中sqrt函數的參數是一個整數,難道不是浮點數嗎?這樣傳參會不會出現問題呢? “
R1:有必要在這里為提出這個問題的讀者解答一下:“向sqrt函數傳遞浮點數是完全正確的,一點錯誤也沒有。當然向sqrt函數傳遞一個整數也沒有問題,因為在sqrt函數內傳遞一個整型變量會自動轉換為雙精度浮點型。那我們可不可以避免參數是整型轉換為雙精度浮點型的過程呢?當然可以。但我們需要對上文中的代碼進行一小部分的修改:
#include<math.h>
#include<stdio.h>
int main(void)
{
printf("%lf",sqrt(4.0));
return 0;
}
這樣更改便可以避免參數是整型轉換為浮點型的過程,同時代碼變得更加地準確。
Q2:“printf函數內的第一個參數,也就是那個奇怪字符串(“%lf”),為什么那個奇怪字符串沒有輸出?取而代之的是一個數字”
R2:這個問題問的非常好!如果你只是單純地認為這只是個奇怪的字符串似乎也沒錯,因為如果是第一次接觸,難免會感到陌生,這非常正常。但“%lf”并不是一個奇怪的字符串,而是一個占位符,我們日常寫C程序時幾乎離不開它。您可以這樣理解:“printf是’格式化輸出‘的意思,您可以把這個占位符理解為“格式化輸出”中的格式化”,它可以按照占位符的內容輸出后面的參數,譬如在同一個printf函數下,第一個占位符輸出的是第二個參數的內容,第二個占位符輸出的是第三個參數的內容,以此類推。區分是否是占位符的方法也很簡單,看一個段字符串的前面是否出現“%”(百分號),如果有,代表著這是個占位符,如果沒有,則代表不是占位符。在C語言中,占位符不僅僅只有“%lf”,還有許許多多的占位符,以下表格是C語言常用的占位符,每個占位符所對應的輸入輸出格式都是不同的。
%d | 以整型的形式輸入輸出 |
%f | 以單精度浮點型的形式輸入輸出 |
%lf | 以雙精度浮點型的形式輸入輸出 |
%s | 以字符串的形式輸入輸出 |
討論:
為了使讀者更好地理解,我們可以對上例的代碼進行一個粗略的翻譯(這里作者將上例的代碼“搬運”到了下面當中,這樣做的原因是為了避免讀者回看上文)。
#include<math.h>
#include<stdio.h>
int main(void)
{
printf("%lf",sqrt(4.0));
return 0;
}
翻譯:在程序中先包含兩個頭文件,它們分別是:math.h(數學頭文件)與stdio.h(標準輸入輸出頭文件)。隨后我們需要編寫main函數,”main“函數的數據類型是int,參數的數據類型是“void”。為什么要編寫“main”這個函數呢?因為它是整個C程序的入口,在main函數的函數體內有兩條語句,第一條是“printf("%lf",sqrt(4.0));”,它翻譯過來的意思是:“以雙精度浮點型的形式對sqrt函數的返回值進行輸出(注意:當一個函數作為另一個函數的參數時,程序會先將一個函數的返回值計算出來隨后再傳遞給另一個函數的參數)。”最后一條語句是“return 0;”,函數是必須需要一個返回值的,但void類型除外,我們的這個main函數的數據類型是int,并不是void,所以main函數需要一個返回值,雖然在多數編譯器是省略main函數的返回值的,但即便如此,最好將返回值加上,這是個良好的習慣!。
(注意:不要將main函數的參數列表中的void看成是main函數的數據類型)
關于“c語言有開根號運算符嗎”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。