結(jié)構(gòu)化程序基本結(jié)構(gòu)_第1頁
結(jié)構(gòu)化程序基本結(jié)構(gòu)_第2頁
結(jié)構(gòu)化程序基本結(jié)構(gòu)_第3頁
結(jié)構(gòu)化程序基本結(jié)構(gòu)_第4頁
結(jié)構(gòu)化程序基本結(jié)構(gòu)_第5頁
已閱讀5頁,還剩110頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第第2章結(jié)構(gòu)化程序基本結(jié)構(gòu)章結(jié)構(gòu)化程序基本結(jié)構(gòu)2.1用順序結(jié)構(gòu)設(shè)計程序用順序結(jié)構(gòu)設(shè)計程序2.2用分支結(jié)構(gòu)設(shè)計程序用分支結(jié)構(gòu)設(shè)計程序2.3用循環(huán)結(jié)構(gòu)設(shè)計程序用循環(huán)結(jié)構(gòu)設(shè)計程序2.4聯(lián)合使用聯(lián)合使用3種基本結(jié)構(gòu)處理復(fù)雜問題種基本結(jié)構(gòu)處理復(fù)雜問題P252.1用順序結(jié)構(gòu)設(shè)計程序用順序結(jié)構(gòu)設(shè)計程序P26返回返回2.1.1交換兩個數(shù)據(jù)交換兩個數(shù)據(jù)P262.1.1交換兩個數(shù)據(jù)交換兩個數(shù)據(jù)P26#include main() int x,y,t; printf(Input x and y:); scanf(%d%d,&x,&y); printf(before:x=%d,y=%dn,x,y);

2、t=x; x=y; y=t; printf(after:x=%d,y=%dn,x,y);程序設(shè)計一般包括問題分析、程序設(shè)計一般包括問題分析、確定確定算法算法、確定數(shù)據(jù)結(jié)構(gòu)。、確定數(shù)據(jù)結(jié)構(gòu)。算法是用計算機解決某個特定問題的算法是用計算機解決某個特定問題的步驟,其特性:步驟,其特性:有窮性有窮性確定性確定性有效性有效性有有0個或多個輸入數(shù)據(jù)個或多個輸入數(shù)據(jù)有有1個或多個輸出數(shù)據(jù)個或多個輸出數(shù)據(jù)算法是算法是最關(guān)鍵最關(guān)鍵語句語句A語句語句BP272.1.2設(shè)計菜單設(shè)計菜單P272.1.2設(shè)計菜單設(shè)計菜單P27|*| |-User management -| 1-Add new user | 2-Cha

3、nge user password | 3-Show user information | 4-exit |*|#include main() 定義整型變量定義整型變量a顯示菜單顯示菜單輸入選項輸入選項顯示選項顯示選項int a; printf(|*|n);printf(|-User management-|n);printf(| 1-Add new user |n);printf(| 2-Change user password|n);printf(| 3-Show user information|n);printf(| 4-Exit |n);printf(|*|n); scanf(%d,

4、&a);printf(Select %dn,a);| |-Shopping management-| b-banana | a-apple | w-watermelon | e-exit |_|P292.2用分支結(jié)構(gòu)設(shè)計程序用分支結(jié)構(gòu)設(shè)計程序P29返回返回2.2.1處理兩個分支問題處理兩個分支問題P292.2.1處理兩個分支問題處理兩個分支問題P292523xxxy#include main()定義整型變量定義整型變量x、a和和b定義雙精度實型變量定義雙精度實型變量y輸入輸入x的值的值 if(x的值為的值為2) 顯示錯誤信息顯示錯誤信息 else 計算分子計算分子 計算分母計算分母 計

5、算計算y的值的值 輸出輸出x和和y的值的值int x,a,b; double y;scanf(%d,&x);if(x=2)printf(Error!n);a=x*x*x+2*x-5;b=x-2;y=(double)a/b;printf(x=%d,y=%lfn,x,y);關(guān)系運算符關(guān)系運算符 、=、=、=、!= 強制類型轉(zhuǎn)換強制類型轉(zhuǎn)換 int all;#include main()定義整型變量定義整型變量x、a和和b定義雙精度實型變量定義雙精度實型變量y輸入輸入x的值的值 if(x的值為的值為2) 顯示錯誤信息顯示錯誤信息 else 計算分子計算分子 計算分母計算分母 計算計算y的值的

6、值 輸出輸出x和和y的值的值int x,a,b; double y;scanf(%d,&x);if(x=2)printf(Error!n);a=x*x*x+2*x-5;b=x-2;y=(double)a/b;printf(x=%d,y=%lfn,x,y);縮進(jìn)格式縮進(jìn)格式 x=2?是是否否a=x3+2x-5定義定義x,a,b,y輸入輸入x顯示顯示Error!b=x-2y=a/b輸出輸出x,yP31#include main()定義整型變量定義整型變量a和和b定義字符型變量定義字符型變量ch定義雙精度實型變量定義雙精度實型變量total輸入輸入a和和b的值的值輸入輸入ch的值的值 if(

7、ch的值為的值為“y”或或“Y”) 平時成績加平時成績加10分分 期末成績加期末成績加15分分 計算總評成績計算總評成績 輸出平時成績、期末成績和總評成績輸出平時成績、期末成績和總評成績 int a,b; char ch;double total; scanf(%d%d,&a,&b);scanf( %c,&ch);if(ch=y | ch=Y)a=a+10;b=b+15;total=a*0.4+b*0.6;printf(%d,%d,%.2lfn,a,b,total);邏輯運算符邏輯運算符 & | !ch=y或或Y?是是否否a增增10定義定義a,b,ch,tota

8、l輸入輸入a,b,chb增增15total=a*0.4+b*0.6輸出輸出a,b,total假假真真表達(dá)式表達(dá)式語句語句i1語句語句i2語句語句in語句語句e1語句語句e2語句語句en假假真真表達(dá)式表達(dá)式語句語句i1語句語句i2語句語句inP34P342.2.2處理一個分支又處理一個分支又包含另一分支問題包含另一分支問題P342.2.2處理一個分支又處理一個分支又包含另一分支問題包含另一分支問題P34#include main()定義整型變量定義整型變量a和和b定義字符型變量定義字符型變量ch定義雙精度實型變量定義雙精度實型變量total輸入輸入a和和b的值的值輸入輸入ch的值的值 if(ch

9、的值為的值為“y”或或“Y”) if(平時成績平時成績90) 將平時成績按將平時成績按100處理處理 else 平時成績加平時成績加10分分if(期末成績期末成績85) 將期末成績按將期末成績按100處理處理 else 期末成績加期末成績加15分分 計算總評成績計算總評成績 輸出平時成績、期末成績和總評成績輸出平時成績、期末成績和總評成績#include main()定義整型變量定義整型變量a和和b定義字符型變量定義字符型變量ch定義雙精度實型變量定義雙精度實型變量total輸入輸入a和和b的值的值輸入輸入ch的值的值int a,b;char ch;double total;scanf(%d%

10、d,&a,&b);scanf( %c,&ch); if(ch的值為的值為“y”或或“Y”) if(平時成績平時成績90) 將平時成績按將平時成績按100處理處理 else 平時成績加平時成績加10分分if(期末成績期末成績85) 將期末成績按將期末成績按100處理處理 else 期末成績加期末成績加15分分 計算總評成績計算總評成績 輸出平時成績、期末成績和總評成績輸出平時成績、期末成績和總評成績if(ch=y | ch=Y)a90a=100;a=a+10;b85b=100;b=b+15;total=a*0.4+b*0.6;printf(%d,%d,%.2lfn,a,b

11、,total);嵌套的嵌套的if語句語句ch=y或或Y?是是否否a=100a90?是是a增增10否否b=100b85?是是b增增15否否x2-5 (1x20)y=1 (x1)20 (x20)P36#include main()定義雙精度實型變量定義雙精度實型變量x和和y輸入輸入x的值的值if(x1) y得到得到1 else if(x20) y得到得到x2-5的值的值 else y得到得到20 輸出輸出x和和y的值的值 double x,y;scanf(%lf,&x);y=1;y=x*x-5;y=20;printf(x=%lf,y=%lfn,x,y);#include main()if(

12、x1) else if(x20) else double x,y;scanf(%lf,&x);y=1;y=x*x-5;y=20;printf(x=%lf,y=%lfn,x,y);else if(x20) y=x*x-5;else y=20;x11假假真真真真假假顯示顯示x x和和y y的值的值x2020y=x2-5y=20y=1P38P382.2.3處理多個分支問題處理多個分支問題P392.2.3處理多個分支問題處理多個分支問題P39#include main() 定義整型變量定義整型變量a 顯示用戶管理菜單顯示用戶管理菜單 等待輸入選項等待輸入選項 switch(選項選項) 選項選項

13、1:1-Add new user 選項選項2:2-Change user password 選項選項3:3-Show user information 選項選項4:4-Exit 否則:否則: Error! #include main() 定義整型變量定義整型變量a 顯示用戶管理菜單顯示用戶管理菜單 等待輸入選項等待輸入選項printf(|printf(|* * * * * * * * * * * * * * * * * * * * * * * * * *|n);|n);printf(|-User management-|n);printf(|-User management-|n);print

14、f(| 1-Add new user |n);printf(| 1-Add new user |n);printf(| 2-Change user password |n);printf(| 2-Change user password |n);printf(| 3-Show user information |n);printf(| 3-Show user information |n);printf(| 4-Exit |n);printf(| 4-Exit |n);printf(|printf(|* * * * * * * * * * * * * * * * * * * * * * * *

15、 * *|n);|n);int a;int a;scanf(%d,&a);scanf(%d,&a); switch(選項選項) 選項選項1:1-Add new user 選項選項2:2-Change user password 選項選項3:3-Show user information 選項選項4:4-Exit 否則:否則: Error! switch(a)switch(a) case 1:printf(1-Add new usern);case 1:printf(1-Add new usern);case 2:printf(2-Change user passwordn);c

16、ase 2:printf(2-Change user passwordn); break; break; break; break;case 3:printf(3-Show user case 3:printf(3-Show user informationn); break; informationn); break;case 4:printf(4-Exitn); break;case 4:printf(4-Exitn); break;default: printf(Error!n); break;default: printf(Error!n); break;P40表達(dá)式表達(dá)式1表達(dá)式表達(dá)

17、式語句組語句組1表達(dá)式表達(dá)式2語句組語句組2表達(dá)式表達(dá)式n語句組語句組n其他其他語句組語句組n+12.3用循環(huán)結(jié)構(gòu)設(shè)計程序用循環(huán)結(jié)構(gòu)設(shè)計程序P41返回返回2.3.1用用for語句處理循環(huán)問題語句處理循環(huán)問題P412.3.1用用for語句處理循環(huán)問題語句處理循環(huán)問題P41#include main()定義循環(huán)變量定義循環(huán)變量ifor(i=1; i=5; i+)顯示顯示-i- 顯示顯示* int i;printf(-%d-n,i); printf(*n);i 5?i增增1是是i=1顯示顯示*顯示顯示-i-1-*i=2-2-*i 5?i增增1是是i=1顯示顯示*顯示顯示-i-1-*i=3-2-*-3

18、-*i 5?i增增1是是i=1顯示顯示*顯示顯示-i-1-*i=4-2-*-3-*-4-*i 5?i增增1是是i=1顯示顯示*顯示顯示-i-1-*i=5-2-*-3-*-4-*-5-*i 5?i增增1是是i=1否否顯示顯示*顯示顯示-i-1-*i=6-2-*-3-*-4-*-5-*P44#include main()定義循環(huán)變量定義循環(huán)變量i和存放和值的和存放和值的sum給給sum賦賦0for(i=1; i=100; i+)給給sum累加累加i 顯示顯示sum的值的值 int i,sum;sum=0;sum=sum+i;printf(sum=%dn,sum);sum=sum+1;sum=sum

19、+2;sum=sum+3;sum=sum+99;sum=sum+100;i 100?i增增1是是sum=sum+ii=1否否P45#include main() 定義循環(huán)變量定義循環(huán)變量i和和sum2、sum3、sum5 分別給分別給sum2、sum3、sum5賦賦0 for(i=1; i=100; i+) if(i為為2的倍數(shù)的倍數(shù)) 給給sum2累加累加i if(i為為3的倍數(shù)的倍數(shù)) 給給sum3累加累加i if(i為為5的倍數(shù)的倍數(shù)) 給給sum5累加累加i 顯示顯示sum2、sum3、sum5的值的值int i,sum2,sum3,sum5;sum2=sum3=sum5=0;if(i

20、%2=0)sum2=sum2+i;if(i%3=0)sum3=sum3+i;if(i%5=0)sum5=sum5+i;printf(%d,%d,%dn, sum2,sum3,sum5);表達(dá)式表達(dá)式2表達(dá)式表達(dá)式3真真語句語句1表達(dá)式表達(dá)式1假假語句語句2語句語句n P472.3.2用用while語句處理循環(huán)問題語句處理循環(huán)問題P472.3.2用用while語句處理循環(huán)問題語句處理循環(huán)問題P47#include main() 定義整型變量定義整型變量n,并賦初值,并賦初值0 定義雙精度變量定義雙精度變量w、sum、ave,給,給sum賦賦0 輸入工資輸入工資 while(工資大于等于工資大于等

21、于0) 將工資累加到將工資累加到sum中中 累加職工人數(shù),即累加職工人數(shù),即n增增1 輸入工資輸入工資 計算平均工資計算平均工資 輸出平均工資輸出平均工資int n=0;double w,sum=0,ave;scanf(%lf,&w);w=0sum=sum+w;n+;scanf(%lf,&w);ave=sum/n;printf(ave=%.2lfn,ave);w 0?是是sum=sum+wn增增1輸入工資輸入工資1632.5 892.5 1698.3 1523.7 2035.7 -1 sum=0+1632.5n=0+1w 0?是是sum=sum+wn增增1輸入工資輸入工資163

22、2.5 892.5 1698.3 1523.7 2035.7 -1 sum=0+1632.5n=0+1sum=1632.5+892.5n=1+1w 0?是是sum=sum+wn增增1輸入工資輸入工資1632.5 892.5 1698.3 1523.7 2035.7 -1 sum=0+1632.5n=0+1sum=1632.5+892.5n=1+1sum=2525.0+1698.3n=2+1w 0?是是sum=sum+wn增增1輸入工資輸入工資1632.5 892.5 1698.3 1523.7 2035.7 -1 sum=0+1632.5n=0+1sum=1632.5+892.5n=1+1su

23、m=2525.0+1698.3n=2+1sum=4223.3+1523.7n=3+1w 0?是是sum=sum+wn增增1輸入工資輸入工資1632.5 892.5 1698.3 1523.7 2035.7 -1 sum=0+1632.5n=0+1sum=1632.5+892.5n=1+1sum=2525.0+1698.3n=2+1sum=4223.3+1523.7n=3+1sum=5747.0+2035.7n=4+1w 0?是是sum=sum+wn增增1輸入工資輸入工資1632.5 892.5 1698.3 1523.7 2035.7 -1 sum=0+1632.5n=0+1sum=1632.

24、5+892.5n=1+1sum=2525.0+1698.3n=2+1sum=4223.3+1523.7n=3+1sum=5747.0+2035.7n=4+1否否7782.754131211P49#include main() 定義長整型變量定義長整型變量i,并賦初值,并賦初值1 定義雙精度型變量定義雙精度型變量t和和sum,并分別賦初值,并分別賦初值1和和0 while(t大于等于大于等于10-6) 給給sum累加累加t i增增1 計算新的一項后賦給計算新的一項后賦給t 輸出計算結(jié)果輸出計算結(jié)果int i=1;double t=1,sum=0;t=1e-6sum=sum+t;i+;t=(dou

25、ble)1/i;printf(sum=%lfn,sum);表達(dá)式表達(dá)式真真語句語句1假假語句語句2語句語句n P502.3.3用用do-while語句處理循環(huán)問題語句處理循環(huán)問題P512.3.3用用do-while語句處理循環(huán)問題語句處理循環(huán)問題P51#include #include #include main() 定義整型變量定義整型變量a do 清屏清屏 顯示用戶管理菜單顯示用戶管理菜單int a;printf(|*|n);printf(| 1-Add |n);printf(| 2-Change |n);printf(| 3-Show |n);printf(| 4-Exit |n);pr

26、intf(|*|n);system(cls); 從菜單選擇一項從菜單選擇一項 switch(選項選項) 選項選項1:顯示:顯示1 選項選項2:顯示:顯示2 選項選項3:顯示:顯示3 選項選項4:顯示:顯示4 否則:否則: 顯示顯示Error! while(沒選擇沒選擇4)scanf(%d,&a);acase 1: printf(1n); break;case 2: printf(“2n); break;case 3: printf(“3n); break;case 4: printf(“4n); break;default: printf(Error!n);a!=4getch();起暫

27、停作用起暫停作用 表達(dá)式表達(dá)式真真語句語句1假假語句語句2語句語句n P532.3.4用用break語句控制循環(huán)結(jié)束語句控制循環(huán)結(jié)束P532.3.4用用break語句控制循環(huán)結(jié)束語句控制循環(huán)結(jié)束P53#include main() 定義整型變量定義整型變量i、a、sum,sum賦賦0 for(i=1; i=6; i+) 輸入評委的分?jǐn)?shù)輸入評委的分?jǐn)?shù) if(a=0)退出循環(huán)退出循環(huán) 將分?jǐn)?shù)累加到將分?jǐn)?shù)累加到sum中中 if(i=6) 顯示被淘汰的信息顯示被淘汰的信息 else 顯示獲得的總分顯示獲得的總分int i,a,sum=0;scanf(%d,&a);break;sum=sum+a

28、;printf(Failed!n);printf(total:%dn,sum);i 6?i+真真i=1假假sum=sum+a輸入輸入aa=0?真真假假P552.4聯(lián)合使用聯(lián)合使用3種基本結(jié)種基本結(jié)構(gòu)處理復(fù)雜問題構(gòu)處理復(fù)雜問題 P55返回返回2.4聯(lián)合使用聯(lián)合使用3種基本結(jié)種基本結(jié)構(gòu)處理復(fù)雜問題構(gòu)處理復(fù)雜問題 P55#include main() 定義整型變量定義整型變量year、month、day do 輸入年份和月份輸入年份和月份 switch(月份月份) 對對1、3、5、7、8、10、12:給:給day賦賦31 對對4、6、9、11:給:給day賦賦30 對對2:if(閏年閏年) 給給da

29、y賦賦29 else 給給day賦賦28 對其他輸入:給對其他輸入:給day賦賦100 if(day!=100) 輸出年份、月份、天數(shù)輸出年份、月份、天數(shù) else 顯示錯誤信息顯示錯誤信息 while(day!=100);#include main() int year,month,day; do printf(Input year and month:);scanf(%d%d,&year,&month); switch(month) case 1: case 3: case 5: case 7: case 8: case 10: case 12: day=31; break; case 4: case 6: case 9: case 11: day=30; break; case 2:if(year%4=0 & year%100!=0) | (year%400=0) day=29;else day=28; break; default: day=100; break;if(day!=100) printf(%d,%d,%dn, y

溫馨提示

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

評論

0/150

提交評論