C語言題目 迭代法,C語言中的迭代法

2025-06-22 06:25:26 字數 2919 閱讀 8693

c語言中的迭代法

1樓:網友

這個其實很簡單,假設有臺電視,我讓你猜價錢:

你說:4000,我說:高了(那麼你把價錢降低一半報一次)

你說:2000,我說:低了(那麼你把價錢公升到4000和2000正中間)

你說:3000,我說:還低(那麼你把價錢公升到3000和4000正中間)

你說:3500,我說:高了(那麼你把價錢降到3000和3500正中間)

你說:3250,我說:還高(那麼你把價錢降到3000和3250正中間)

你說:3125,我說:低了(那麼你把價錢公升到3125和3250正中間)

你說:3200,我說:答對了!

這就是典型的迭代。當計算沒有表示式的時候,你輸入乙個初始化的資料(比如4000),然後通過乙個判斷程式檢驗是否正確,如果不正確,就按照上兩次之間的結果進行判斷,以逐漸逼近的方式求得最終的數值,這就叫迭代。

這個迭代有幾個條件:第一:你有乙個計算方式,從前面兩步的乙個值(比如前面的例子從最低的高值和最高的低值之間去中間值,就是乙個計算方式)

第二,有乙個判斷程式,比如我心裡知道的那個數,對你的**進行比較。

第三,有乙個收斂條件(上面的例子是完全猜對,其實你也可以允許誤差在100元內就算猜的正確)

相信聰明的你一定看的明白,要不然你去找範偉和趙本山要答案吧,哈哈哈!

2樓:網友

哎,這個人的這麼經典,我都看明白了!。。迭代就是一次一次的帶數值計算,縮小範圍,然後確定最後數字是多少啊!

c語言迭代法第11題

3樓:網友

兩個錯,第乙個,接收傳入的時候scanf("%f",&x);

第二個,while(fabs((double)t)<(1*(10^(-6)))這樣的話當然只一次就退出了,應該是》

下面是改好的**。

#include

#include

int main()

while(fabs((double)t)>(1*(10^(-6)))

printf("cosx=%f",fcos);

return 0;}

c語言中迭代法如何運用

4樓:匿名使用者

#include

#include

float f(float x)

void main()

迭代就是函式自己呼叫自己,用的時候注意選擇迭代結束條件就行了,不要陷入無限迭代。下面給出乙個遞迴求階乘的簡單函式示例。

long jiechen(long n){if(n==1)return 1; //遞迴結束條件else retrun(n*jiechen(n-1));//遞迴過程。

c語言迭代法

5樓:裴安禎遇國

迭代法就是讓方程的解不斷去逼近真實的解。這是一種數值計算方法。思路就是按上面的步驟,只設定兩個x0,x1開始x0代表第乙個值,x1代表第二值第一次迭代之後,讓x0=x1,x1=新的值,這樣x0代表第二個值,x1代表第三值以此類推。。。

直到誤差滿足要求。

6樓:諶晨王天路

迭代法,是一種不斷用變數的舊值遞推新值的過程。 fun函式設定迴圈,當x0-x1的絕對值小於迴圈結束。 #include

#include

floatfun()

floatx,n=,root;

while(root>=<=

x=n;n=cos(x);

root=x-n;} root=n; returnrootvoid

main()

floatf=fun();

printf("root=%f",f);

7樓:網友

你說的不行是編譯通不過嗎?

還是執行上的結果錯誤?

從語法上上述兩個程式都是正確的,只不過是前者回先執行迴圈體,後判斷迴圈條件。如果你在輸入時,造成的迴圈結果從一開始就不成立,那麼兩個程式的結果肯定是不同的。

還有一點就是編譯系統的差異造成的。

8樓:zxy很強

do——while會至少執行一次,而while如果不合條件,會直接跳出迴圈。

9樓:網友

我在vc下執行沒有錯誤,如果挑錯誤,我覺的是c沒有初始化。

10樓:網友

第二個while(fabs(c)/x>1e-5)執行時無法判定條件語句真假,先要給c賦值。

c語言用迭代法求cosx的表示式

11樓:做一支健康的望日葵

用迭代法求cosx的表示式,可以先將方程x=cosx改寫成x=g(x),其中g(x)是乙個合適的函式,例如g(x)=。然後給定乙個初始值x0,用公式xn+1=g(xn)來逐步計算xn的值,直到滿足精度要求。下面是乙個用c語言實現的例子:

#include

#include

#define eps 1e-6 //定義精度。

int main()

double x0,x1; //定義迭代變數。

x0 = 0; //給定初始值。

dox1 = * x0 + cos(x0));//計算下乙個近似值。

if(fabs(x1 - x0) x0 = x1; //更新迭代變數。

while(1);

printf("cosx的表示式為:%.6lf", x1); //輸出結果,保留6位小數。

return 0;

c語言用迭代法求a的平方根

12樓:網友

你沒有給x1,x2賦初值 就直接用了。

你能把原題貼出來嗎?

用matlab編出牛頓迭代法的程式

function newton x0,e,n 輸入xo為估計的迭代初值,e為規定的誤差,n為最大迭代次數.輸出x,y為最後迭代的兩個近似根,k為迭代次數.clcformat long disp 迭代次數 近似根 k 0 x1 0 x2 x0 while abs x2 x1 e x1 x2 x2 x1...

c語言中的選擇排序法是什麼C語言中的選擇排序法是什麼?

選擇排序 selection sort 是來一種簡單源直觀的排序演算法。工作原理是每一次從待排序的資料元素中選出最小 或最大 的一個元素,存放在序列的起始位置,直到全部待排序的資料元素排完。以下是一個實現選擇排序的例子 define swap x,y,t t x x y y t 將list中的n個資...

c語言中作用C語言中作用

取決於在scanf中使用還是在printf中使用。在scanf中使用,則新增了 的部分會被忽略,不會被引數獲取。例如輸入為 12 abc那麼12將會讀取到變數a中,但是後面的abc將在讀取之後拋棄,不賦予任何變數 例如這裡的字元陣列b 在printf中使用,表示用後面的形參替代的位置,實現動態格式輸...