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語言指標作函式引數時的返回問題 首先,弄懂函式引數都是靠值傳遞。指標也是。進入函式後,函式建立幾個空間給形參,再...