c 呼叫平方根函式問題,C 呼叫平方根函式問題

2021-12-16 15:36:19 字數 4361 閱讀 3951

1樓:匿名使用者

用迭代法求某數a的平方根。

已知求平方根的迭代公式為:x n+1 = (xn + a / xn) / 2

要求前後兩次求出的差的絕對值小於10-5。

演算法如下:

① 設定乙個x的初值x0 ; (在如下程式中取x0=a/2, 通過迭代公式求出x1,可以肯定與真正的平方根相比,誤差很大。)

② 用上述公式求出x的下乙個值 x1 ;

③ 如此繼續下去,直到前後兩次求出的x值(x n+1和xn)滿足以下關係:|x n+1-xn|<10-5 .

2樓:匿名使用者

c++中cmath標頭檔案中的sqrt函式能計算乙個數的平方根。其原型在c++ 11中有四個:

double sqrt (double x);

float sqrt (float x);

long double sqrt (long double x);

double sqrt (t x);           // additional overloads for integral types

其中最後乙個是為整型型別提供的過載版本,其會先將x轉換為double型別再進行計算。這是c++ 11提供的新功能。因此在c++ 11以前像sqrt(1)這類的語句是非法的,因為編譯器不知道匹配哪個函式(只有前三個版本),在c++ 11之後這樣的語句就合法了,編譯器會匹配最後乙個版本。

樣例:(摘自cplusplus.com)

/* sqrt example */

#include /* printf */#include /* sqrt */

int main ()

3樓:匿名使用者

sqrt()的引數須為浮點,不可為整數,轉換 一下就可以了: sqrt((double)m)

4樓:匿名使用者

你前面定義了乙個 整形的變數m, 後面有定義double型的 型別不匹配啊

5樓:匿名使用者

汗,c語言中,由於沒有過載,你直接sqrt(m)它會把m轉成浮點型.

但是c++中,型別不匹配時,它首先看的是有沒有過載函式.

而不巧,sqrt函式就有很多個第乙個引數是int的多引數過載函式(這點是從報錯資訊上看出來的.)

m*1.0的結果是乙個浮點數,有和它匹配的函式,所以正常執行.

解決方案就是"兔子和小強"寫的,他寫的那三種都行.

比如 sqrt( (double)m );

lz的c++基本功不夠啊=,=

6樓:兔子和小強

(double)m

m + 0.0

m * 1.0

在c++語言中,如何運用平方根函式sqrt

7樓:

double pow(double x,double n)是math.h裡一函式,求x的n次冪

x必須》0,

立方根就是1/3次冪了

但這裡要用3.0或1.0/3,否則成了整除結果為1

8樓:匿名使用者

最起碼知道函式的構造吧,型別名 函式名(形參)就是這樣呼叫啊,用函式名(形參)就行了

9樓:鬱草小沙彌

包含標頭檔案 #include

double dd = sqrt(16.0);

此時dd就得到了16的平方根值4

10樓:黑乎乎

我建議不要用平方函式,用《*》就可以了,如果你堅持用的話標頭檔案必須有#include「math.h」

11樓:匿名使用者

程式例:

#include

#include

int main(void)

12樓:匿名使用者

sqrt(要求的數)

13樓:匿名使用者

加標頭檔案math.h

c++中,怎麼運用開方功能

14樓:會飛的小兔子

#include//包括數學公式標頭檔案,sqrt(x);//sqrt()函式學中求開方的。c++和c是相容的,可以呼叫c的庫函式。

專呼叫庫函式:

#include

usingnamespacestd;

intmain()

擴充套件資料c/c++方括號的作用

1、宣告變數的時候有,表示陣列

2、位址+[n](n是正整數,0,1,2……),表示下標運算3、函式引數型別中有,表示指標

第一種:表示陣列

表現形式:宣告變數的時候有

例如:inta[10];//這裡指定a是乙個陣列,元素型別為intint*a[10];//這裡指定a是乙個陣列,元素型別為指標,即指標陣列

int(*a)[10];//這裡a雖然是指標,但是表明a指向的空間是陣列型別,即a是陣列指標

15樓:匿名使用者

首先包含這個標頭檔案 #include

然後就可以寫上 double x=sqrt((double)y);注意如果y不是double型的話要強制轉換成double型。

16樓:匿名使用者

加上#include就可以用很多數學函式了,或。

17樓:匿名使用者

c++和c是相容的,可以呼叫c的庫函式;而且,事實上,c++並沒有專用的math函式,所以只能用c的。

c++中如何求乙個數的平方根?

18樓:6哈庫那瑪塔塔

1、呼叫庫math.h

2、在最開頭加入語句:#include

3、平方根函式原形:double sqrt(double x);

第一種:

float i =sqrt (num)

int result = abs (ceil(i)-i)  >  abs(floor(i)-i) ? (floor(i)) : (ceil(i));

第二種#include

int my_sqrt(const int);

intmain(void)

else

printf("the result is %d\n", my_sqrt(x));

exit(0);

}int my_sqrt(const int num)

19樓:匿名使用者

標頭檔案:#include

sqrt() 用來求給定值的平方根,其原型為:

double sqrt(double x);

【引數】x 為要計算平方根的值。

如果 x  0,將會導致 domain error 錯誤,並把全域性變數 errno 的值為設定為 edom。

【返回值】返回 x 平方根。

注意,使用 gcc 編譯時**入-lm。

【例項計算200 的平方根值。#include main()輸出結果:/* 檔名稱:求任意正數的平方根02.* 作    者:  李欽

03.* 完成日期:  2016 年  3   月 12 日04.* 版 本 號:v1.0

05.* 對任務及求解方法的描述部分:

06.* 輸入描述:

07.* 問題描述: 需要用到平方根,應呼叫08.* 程式輸出: setprecision(n) 控制輸出流的有效數字

09.* 問題分析: 略

10.* 演算法設計: 略

11.*/

#include

#include

#include//呼叫io流類庫操縱符

void main()

{double a,s;

cout<<"請輸入任意正數"<

/* 檔名稱:求任意正數的平方根

02.* 作    者:  李欽

03.* 完成日期:  2016 年  3   月 12 日04.* 版 本 號:v1.0

05.* 對任務及求解方法的描述部分:

06.* 輸入描述:

07.* 問題描述: 需要用到平方根,應呼叫08.* 程式輸出: setprecision(n) 控制輸出流的有效數字

09.* 問題分析: 略

10.* 演算法設計: 略

11.*/

#include

#include

#include//呼叫io流類庫操縱符

void main()

{double a,s;

cout<<"請輸入任意正數"<>a;

if(a>0)

{s=sqrt (a);

cout<

C語言函式呼叫的問題

主函式的a作為輸入引數輸入給函式aaa進行計算,計算後a的值不發生變化。這是c語言的基本規則。從編譯原理角度講,輸入aaa的只是a的值,並不是a所在的暫存器或位址,a的值輸入aaa後,該值被存放在另乙個臨時暫存器或位址,發生改變的是這個臨時暫存器或位址的值,而非a所在的暫存器或位址的值,所以,a的值...

lua呼叫c和c函式呼叫lua的區別

乙個是lua呼叫c乙個是c呼叫lua,就像我用你的東西,和你用我的東西一樣。lua執行過程中,可以吧lua的乙個資料拿來傳遞給c裡面,然後c執行之後可以吧資料返回給lua,這就是lua呼叫c 反過來,c在執行的時候,把資料拿給lua做處理,然後c得到處理好的資料,這就是c呼叫lua。因為lua處理資...

C語言指標建立函式問題,C語言指標呼叫函式問題,急求解釋(本題是《c和指標》上的題目)

第乙個表示傳遞graphadjlist型別的引用g,第二個表示傳遞graphadjlist型別的指標g 另外這是c 不是c。c語言指標呼叫函式問題,急求解釋 本題是 c和指標 上的題目 c語言指標作函式引數時的返回問題 首先,弄懂函式引數都是靠值傳遞。指標也是。進入函式後,函式建立幾個空間給形參,再...