C語言課件第4章選擇結(jié)構(gòu)程序設(shè)計(jì)新解析_第1頁
C語言課件第4章選擇結(jié)構(gòu)程序設(shè)計(jì)新解析_第2頁
C語言課件第4章選擇結(jié)構(gòu)程序設(shè)計(jì)新解析_第3頁
C語言課件第4章選擇結(jié)構(gòu)程序設(shè)計(jì)新解析_第4頁
C語言課件第4章選擇結(jié)構(gòu)程序設(shè)計(jì)新解析_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、#include st int niainf int number;源程序-求絕對值;請輸入一個(gè)整數(shù)10請輸入一個(gè)整數(shù):”);:這個(gè)數(shù)的絕對值是1Q.;scanf(,r%r & number i ;if (number 0)number = -number;prim f(這個(gè)數(shù)的絕對值是return 0;請輸入一個(gè)整數(shù):300這個(gè)數(shù)的絕對值是 300.%cLn* number);#include int main() int number;printi(MEnter a number:);scanf(,%d, &number);if(number 0)number = -number;源程序-

2、求絕對值1 Enter a number: 10 - The absolute value is 10.Enter a number: -300The absolute value is 300;printf(MThe absolute value is %dAnf number); return 0;)if (裝達(dá)式)語句選擇結(jié)構(gòu)程序設(shè)ti舉例編程實(shí)現(xiàn)如下要求:一上輸入兩個(gè)實(shí)數(shù)存入變量a,b中,如果a大于b,請互換3和b的值,然后輸出互換后a和b的值,經(jīng)過分析,設(shè)計(jì)后,寫出如下程序:#include int main() float a,b,t=0;scanf(%f;%r,&a,&b);一

3、:辛EVSH WMLfrbi:1 1if (ab)t=a; a=b; b=t;printfC %5.2f, %5.2fn a,b);return 0;, A .3.00f 4.0023 RTSII選擇結(jié)構(gòu)程序設(shè)計(jì)例:榆入三角形的三邊,求三角形的面積./include #include int main()float azbrcrpf$;scanf(w*Vbt%t%r,&ar&bz&c);if (a+bc & a+ob & b+ca)p-(a + b+c)/2;s-sqrt(p*(p-a)*(p-b)*(p-c); printf(*s=s %7.2f n聲);elseprintf。不是三角形八口

4、);return 0;(二)多分支結(jié)構(gòu)與嵌套的L語句和switch語句多分支結(jié)構(gòu)有多種形式 實(shí)現(xiàn)方法:嵌套的if語句-else if 形式-嵌套的if - else語句, switch 語 U嵌套的if語句if (表達(dá)式)語句1外語句else語句2 W語句。出現(xiàn)else if的形式 o嵌套的if else語句 if (表達(dá)式1)語句1else i(表達(dá)式2)語句2else訂的形式!se if(表達(dá)式0語番旬nJ吾句n4 27 RTSIIif(當(dāng)堂今及嵌套的if 一 eke語句計(jì)(表達(dá)式2)語句1 else語句2elseelse和汗的匹酉已if(表達(dá)式1)if(表達(dá)式2)語句1else語句2 e

5、lse近表達(dá)式3)語句3else語句4if(表達(dá)式1)計(jì)(表達(dá)式2)語句1elseif(表達(dá)式3)語句3else語句4else與最靠近它的、沒有與別的else匹配過的if匹配胤表達(dá)式1 j訐(表達(dá)式2)語句1else用表達(dá)式3)語句3else語句430 BISU改變else和if的配對例:改寫下列if語句,使else和第一個(gè)i配對口if (x 2)if (x 1) y = x + 1;else y = x + 2;每條語句的執(zhí)行條件?if (x 2)if (x 1) y = x + 1;else y =: x + 2;I if (x 2)if (x b) d=a;else.if (cb) d=

6、c; else d=b;if (ab)if (cb) d=c;if (ab) if (ob)else d=b;if (ab)if (cAb) d=c;else d=bj分段函數(shù)求俏例:分段函數(shù)計(jì)算0 xQ4xy0X 1533 RT;II源程序-分段函數(shù)計(jì)算# include int nuin(vHd) double y;printf(Enter x:); scanf(t,%ir&x);if (x y = 0;else if (x = 15M y = 4 X / 3;)Enter x: -0.5 f(-0.50)= 0.00 nil uua 1 aaEnter x: 9.5f(9.50) = 1

7、2.674x T0 a 15| Enter x: 21.3 (21,30) = 42.75else(y = 2*5 * x - 10.5;)printf(*lf(%,2f)=x, y);return 0;34 BISU選擇結(jié)構(gòu)程序設(shè)計(jì)switch 語句 當(dāng)分支較多時(shí),使用嵌套的if語句層數(shù)多,程序冗長而且可讀性降低.此時(shí)可以考慮使用尊witch語句(開關(guān)語句)來處理多分支.開關(guān)語句switch (表達(dá)式)case常量表達(dá)式,語句組1case常量表達(dá)式入 語句組2case常量表達(dá)式3:語句組3 case常量表達(dá)式m 語句組n default:語句組n+工35 RT?IIswitch語句處理多分支

8、選擇問題,3種情況在switch語句的每個(gè)語句段中都使用break語句:switch(表達(dá)式)case常量表達(dá)式Lcase常量表達(dá)式2:語句段1 ; break;語句段2 ; break;case常量表達(dá)式n:break;default :記句段n+1 ; break;switch(表達(dá)式”case常量表達(dá)式1:語句段1; break;case常量表達(dá)式2;語句段2 ; break:case常代運(yùn)式n:語句段n ; break;detaull :語句段n+l ; break:37 RTU舉例求解簡單表達(dá)式:switch (choice) : price=3-0; break;price=2.5

9、; break;price=4.0; break;; case 4: price=3.5; break;default: price=0.0; break;例:輸入一個(gè)形式如:“操作數(shù)運(yùn)算符操作數(shù)”的四則運(yùn)算表達(dá)式,輸出運(yùn)算結(jié)果。例如:輸入:3.1+4.8輸出:7.9輸入:3.1-4.8輸出:-L7# include int inain) char operator; double valued value!;printf(“請輸入一個(gè)表達(dá)式:ir);&valuelt & operator, switch(operatorcaseprintf(,t=%,2tn, valucl+valueli;

10、break;caseprintf(tf=%,2fnM, valueKvalue2); break;caseprintf(,*=%-2fnM, valuel*vahie2);break;case 7:printf(=%.2fn, valuel/value2);break;default:prinUT不認(rèn)識(shí)的運(yùn)算符n“);源程序&value2): i i mmmmm n I Hi I mi! n I I I ; ra ( i i i i i iMMamri i an i iT請輸入一個(gè)表達(dá)式:3.1+4.8=7.9laaiaaaaaaf nBHBaaiii11 m 1 wiMaaaqaiinva

11、ipMnBHBM 1 11 ,r rpiiiin an ri ,1 11 ri i i 1 baiHW如果除數(shù)為G?return ft;39 RTS! I2、在switch中 不使用breakswitch(表達(dá)式)case常量表達(dá)式1:語句段1;case常量表達(dá)式2:語句段2;case常量表達(dá)式n:語句段n;default :語句段n+1;break;swiich(表達(dá)式)case常量表達(dá)式上 語句段1;case常好友達(dá)式2t語句段2;case常笊友達(dá)式n:語句段n;default :語句段n+1;switch (choice【case 1; price=3.0; :price=2.5;pri

12、ce=4.0;price=3.5;default: price=0t0;) price二?表達(dá)式的值常量表達(dá)式1的值一語句程j141 RT;II 選擇結(jié)構(gòu)程序設(shè)計(jì)3、fl-switch 的某些 語句段 中使用 break#include void main()int score, p;printfC*訃榆人考試成績。一 scanf(%dfff&score);p=score/10;switch (p)case 0:printf(Dnrr);lx。門用用一組執(zhí)行語句時(shí), 共用的執(zhí)行語句寫r在最后一個(gè)、工V case的后面.r OOcase 7:printf(乍n)default: printf(請

13、輸入0 100之間的整數(shù)n);選擇結(jié)構(gòu)程序設(shè)計(jì)舉例根據(jù)輸入的考試成績等級(jí)(ABCDE)打印出百分制分?jǐn)?shù)段.A: SO-100B: 7079 C: 60-69 D: 60#include void main()char grade;7079printf(請輸入考試等級(jí) scanf(rrVbc&grade) switch (grade.case TV: printf(80100n);bremk;caseprintfC7079nrr);break;case rCf: printfC60-69n5;bralc;case DI printfC60nz/);break;default: printfCer

14、rornfl);選擇結(jié)構(gòu)程序設(shè)計(jì)上例的程序 中switch語句中 如果沒有break;則程序運(yùn)行結(jié)果會(huì)是什么呢?Bj 7079 6069 60 Error#include void main()char grade;printf(請榆入考試等級(jí)AD:); scanf( Vbc&grade);switch (grade)case W : printf(w80100nw);case : pmtfC7079nft;case : printf(6O69nw);ease D,: printff; 60程序改進(jìn)程序工/include void main()int score;printf(“請輸入考試成績

15、。 100產(chǎn));scanf(wod : &score );switch (score)般case BO - 100: printfCAXnbreak;case 70 79* printf(BnJ3;break;6069: printf(Xnw);break;case 60: printffTJXn;break;default: pHntfL請輸入0 - 100之間的整數(shù)nQ;#include void main()int scorer p;printfC,請輸人考試成績。- 100:,f); scanf(%d&score);p=score/10;switch (p)case 0: printf

16、CDXnjbreak;printfCDXnreak;printf(r,Dnw);break;printf(MDnw);break;printf(wDnr);bre k;prititfCDnOreak;printfCXn*);break;case 7:printf(Bn,b&ak;case BzprintAXnbreak;case SzprintfCAXnbreak; case lOzprintffAXnjbreak;45 RTSIJ選擇結(jié)構(gòu)程序設(shè)計(jì)11種情況思考二不同came 值時(shí)執(zhí)行捆同的 操作;是否可以 合并?Jdefault: pHntf請輸入0 W。之間的整數(shù)n); )選擇結(jié)構(gòu)程序設(shè)計(jì)

17、改進(jìn)程序2nt score, p;printf。請輸入考試成績。工牌工scanf(v%d&score);p=score/10;switch (p)用一組執(zhí)行語句時(shí), 共用的執(zhí)行語句寫在最后一個(gè)、一sse的后面.,#include void main()4: 5: printf(T)nr3;break;6: printffCXnJjbreak; 於printfBnfbreak;Idefault: printf(請輸入0 100之間的整數(shù)h); 47 rim選擇結(jié)構(gòu)程序設(shè)計(jì)選擇結(jié)構(gòu)程序設(shè)計(jì)舉例 輸入一年號(hào),判斷這一年是否為閏年,并榆出相應(yīng)信息.#include int main()iiint ye

18、arjeap;scanf( 0%d”.&year);if (year%4=0 & year% 10()!=()ll(year%40(=() leap= 1;elseleap=();if(leap=ltprintf(M%d 年是閏年.n 二year);elseprintf(%d年不是閏年八n year);return 0;選擇結(jié)構(gòu)程序設(shè)計(jì)選擇結(jié)構(gòu)程序設(shè)計(jì)舉例例2輸入系數(shù)求方程 ax?+bx+c=O的解(各種形 式)求根部分的算法流程圖b 43c=0?真b?-4nc0? 一方+ J 6 4, -XI =輸出,非二次方程”輸出兩 個(gè)相等 實(shí)根:v2 =-榆出兩個(gè)實(shí)根:xI, x2假假輸出兩個(gè)復(fù)根: p+qii p-qi計(jì)算復(fù)根的實(shí)部和虛部: 實(shí)部一b虛部J-(b -4ac)q 二-_* 4? RTSU#include #include void main()( -flout H.b.,diM:.xl.x2.realpHt.imagpHrt;scanf(u%C%n%r,&a1&b,&c);printf(MThe equation M);it(a=0)printf(His not a quadratic11); elsedigc=bkh-4群n琳c;if (disc=O)print。has two equal rocts: %8.4fn廠

溫馨提示

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

評(píng)論

0/150

提交評(píng)論