首頁 > 常見問題 > 主體

c語言開根號運算子是什麼

青灯夜游
發布: 2023-03-06 14:39:26
原創
40169 人瀏覽過

在c語言中,沒有開根號運算符,開根號使用的是內建函數“sqrt()”,使用語法“sqrt(數值x)”;例如“sqrt(4)”,就是對4進行平方根運算,結果為2。 sqrt()是c語言內建的開根號運算函數,其運算結果是函數變數的算術平方根;此函數既不能運算負數值,也無法輸出虛數結果。

c語言開根號運算子是什麼

本教學操作環境:windows7系統、c99版本、Dell G3電腦。

在c語言中,沒有開根號運算符,開根號使用的是內建函數「sqrt()」。

c語言 sqrt()函數

#C語言中sqrt意思是平方根函數,計算一個非負實數的平方根。

sqrt()是c語言內建的開根號運算函數,其運算結果是函數變數的算術平方根。

sqrt()函數既不能運算負數值,也不能輸出虛數結果。

語法:

double sqrt(double x)
登入後複製

傳回值:

  • #此函數傳回 x 的平方根。

sqrt()函數的使用

在頭檔中加入#include之後使用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语言视频教程编程教学

以上是c語言開根號運算子是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!