C++課件 第五講_第1頁
C++課件 第五講_第2頁
C++課件 第五講_第3頁
C++課件 第五講_第4頁
C++課件 第五講_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第三章第三章 流程控制流程控制順序結構順序結構 選擇結構選擇結構 循環(huán)結構循環(huán)結構 其它控制語句其它控制語句 應用舉例應用舉例 循環(huán)結構循環(huán)結構 while表達式表達式語句語句假假(0)(0)真真( (非非0)0)do-whilewhile (表達式表達式) 語句語句do語句語句while (表達式表達式);forfor(表達式表達式1;表達式表達式2;表達式表達式3)語句語句循環(huán)的嵌套循環(huán)的嵌套 循環(huán)體內包含另一個完整的循環(huán)結構。循環(huán)體內包含另一個完整的循環(huán)結構。第一類實例第一類實例: :打印圖案打印圖案 例例: :打印九九乘法表打印九九乘法表 #include using namespac

2、e std;void main() coutt 九九乘法表九九乘法表endl; coutt -endl; for(int i=1;i=9;i+) for(int j=1; j=9 ;j+) coutij=i*jt; coutendl; 思考:思考:打印上三角或下三角程序如何改動?打印上三角或下三角程序如何改動?i=j/控制輸出的行數控制輸出的行數/每行輸出的格式每行輸出的格式#includeusing namespace std;void main() int i, j;char c;for(i = 0; i 26; i+) for(j = 0; j 25 - i; j+) cout ; fo

3、r(j = 0; j = i; j+) c=a + j; coutc ; coutn;例:打印出如下圖案(菱形)例:打印出如下圖案(菱形) 1. 前前5行一個規(guī)律,后行一個規(guī)律,后4行一個規(guī)律,利用雙重行一個規(guī)律,利用雙重for循環(huán),第一層控制行,第二層控制循環(huán),第一層控制行,第二層控制列列。* * * * * * * * * * * * * * * * * * * * *程序分析:程序分析:空格空格和和“*”#includeusing namespace std;void main( )int i,j,k;* * * * * * * * * * * * * * * * * * * * *fo

4、r(i=1;i=5;i+)for(j=1;j=5-i;j+)cout ;控制控制空格空格輸出輸出for(k=1;k=2*i1;k+)cout*;控制控制“*”輸出輸出coutendl;for(i=1;i=4;i+) for(j=1;j=i;j+) cout ; for(k=1;k=9-2*i;k+) cout*; coutendl; * * * * * * * * * * * * * * * * * * * * *#includeusing namespace std;void main( )int i,j,k;* * * * * * * * * * * * * * * * * * * * *

5、for(i=1; i=5; i+)for(j=1; j=5-i; j+)cout ;for(k=1;k=2*i-1;k+)cout*;coutn; if(n%2) i=(n+1)/2; j=(n+1)/2-i;for(i=1; i=4; i+) for(j=1;j=i;j+) cout ; for(k=1; k=9-2*i; k+) cout*; coutendl; * * * * * * * * * * * * * * * * * * * * * i=n/2; k=n-2*i;第二類實例第二類實例: :多條件的方案列多條件的方案列舉舉分析:分析:for(x=0;x33;x+)for(y=0;

6、y=50;y+)x(母雞),母雞),y(公雞),公雞),z(小雞):小雞):for(z=0;z=100;z+)if(3*x+2*y+0.5*z)=100)&(x+y+z)=100)cout“x+y+z=”x+y+z0;m-) if(m % 6=0) break; coutm0;m-) if(m % 6=0) continue; coutm0);c)i=0; while (1) i+; if(i=20) break; d) a=1; while(a10) if(am;max=m; /第一個數假設為最大數第一個數假設為最大數 while (cinm,m!=0) if (mmax) max=

7、m; 以輸入以輸入0作為結束,作為結束,輸入數的個數未知輸入數的個數未知 max=0;/設一個較小的數為最設一個較小的數為最大值的初值大值的初值 for(int i=0;im; if (mmax) max=m; 例:讀入一系列整數,統(tǒng)計出正整數個數例:讀入一系列整數,統(tǒng)計出正整數個數i和和負整數個數負整數個數j,讀入讀入0則結束。則結束。分析:分析:要判斷數的正負并分別進行統(tǒng)計,需在循要判斷數的正負并分別進行統(tǒng)計,需在循 環(huán)內部嵌入選擇結構。環(huán)內部嵌入選擇結構。需讀入一系列整數,但整數個數不定,要在需讀入一系列整數,但整數個數不定,要在 每次讀入之后進行判斷,故用每次讀入之后進行判斷,故用wh

8、ilewhile循環(huán)。循環(huán)。循環(huán)控制條件應該是循環(huán)控制條件應該是n!=0n!=0。#includeusing namespace std;void main() int i=0, j=0, n; coutn; while( n!=0 ) if(n0) i+; if(nn ; cout正整數個數:正整數個數:i 負整數個數:負整數個數:j=1e-5) sinx+=t; t=-t*x*x/(i+1)*(i+2); i=i+2; 第五類實例第五類實例: :輾轉循環(huán)輾轉循環(huán)例例:用輾轉相除法求兩自然數的最大公約數。用輾轉相除法求兩自然數的最大公約數。算法思想:算法思想:m n r12 5 252121

9、0(1) 對于已知兩數對于已知兩數m,n,使得使得mn(2) m除以除以n得余數得余數r(3) 若若r=0,則,則n為最大公約數,結束;否則執(zhí)行為最大公約數,結束;否則執(zhí)行(4)(4) mn,nr,再重復執(zhí)行再重復執(zhí)行(2) 輾轉相除法輾轉相除法while (r!=0) m=n;n=r;r=m%n; coutn; #include using namespace std;void main( ) int m, n, t, r; cout請輸入請輸入 m n mn; if(mn) t=m; m=n; n=t; while (r!=0) m=n; n=r;r=m%n; cout最大公約數為最大公約數為 mendl; 例:利用牛頓迭代法求方程例:利用牛頓迭代法求方程013543)(23xxxxf在在x0=1附近的根的近似值。附近的根的近似值。)()(1nnnnxfxfxx0yx(x0,f(x0)(x1,f(x1)x0 x1x2x3x輸入輸入x0值,由公式求出值,由公式求出x1,再由再由x1從公式求出從公式求出x2,.,直直到到 nnxx1x n+1為方程為方程f(x)=0在在X0附近的一個近似附近的一個近似根根 ,設設 為為10-5#include#includeusing namespace std;void main() double x

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論