C程序設(shè)計(jì)之分支結(jié)構(gòu)(精)_第1頁
C程序設(shè)計(jì)之分支結(jié)構(gòu)(精)_第2頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、Chap 3分支結(jié)構(gòu)3.1簡單的猜數(shù)游戲3.2四則運(yùn)算本章要點(diǎn)什么是分支結(jié)構(gòu)?它的作用是什么? switch語句中的break起什么作用?它們之間又有什么不同?3.3査詢自動(dòng)邏輯運(yùn)算和關(guān)系運(yùn)算的相同之處是什么?字符型數(shù)據(jù)在內(nèi)存中是如何存儲(chǔ)的?3.1簡單的猜數(shù)游戲例3 1簡單的猜數(shù)游戲。輸入你所猜的整數(shù)(假定 100內(nèi)),與計(jì)算機(jī)產(chǎn)生的被猜數(shù)比較,若相等, 顯示猜中;若不等,顯示與被猜數(shù)的大小關(guān)系。3.1.1程序解析3.1.2二分支結(jié)構(gòu)和if - else語句3.1.3多分支結(jié)構(gòu)和else - if語句# include int main(void)3.1J程序解析int mynumber =

2、38 int yournumber;(In put your number:48 Sorry! your number isbigger than my number!printf(vvlnput your number: ”);scanf(ff%dM, &yournumber);if(yournumber = mynumber)printf(MOk! you are right!nM);else if(yournumber mynumber)Input your number:38Ok! you are right!多層縮進(jìn)的書寫格式 使程序?qū)哟畏置鱬rintf(ffSorry! y

3、our number is bigger than my number!nM); elseprintf(MSorry! your number is smaller than my number!nM);return 0;3.1.2二分支結(jié)構(gòu)和if-else語句if(表達(dá)式)語句1else一條語句if(表達(dá)式)語句1判斷數(shù)字的奇偶性例3 2輸入1個(gè)整數(shù),判斷該數(shù)是奇數(shù)還是偶數(shù)。讀入一個(gè)整數(shù)if(該數(shù)能被2整除)則該數(shù)為偶數(shù)該數(shù)為奇數(shù)numb語句2統(tǒng)計(jì)學(xué)生的成績例3 3輸入一個(gè)正整數(shù)n,再輸入n個(gè)學(xué)生的成績,計(jì)算平均分,并統(tǒng)計(jì)不及格成績的 個(gè)數(shù)。for(i = 1; i = n; i+)輸入1個(gè)

4、學(xué)生的成績grade累加成績total統(tǒng)計(jì)不及格成績的個(gè)數(shù)count源程序-判斷數(shù)字的奇偶性#include intmain(void) intnumber;iEnteraelseprintf(flTne number 怡 odd. nM);:Enteranumber:329 iTnenumber isodd.return 0;此處條件內(nèi)由于只有一條語句,故可省略#includeintmain(void) int count, i,n;double grade, total; printf(MEnter n: ”);scanf(lf%dM, &n);for(i = 1; i = n;

5、i+) printf(MEntergrade #%d:ff, i);scant (lf%lff &grade); total = total + grade;printf(MGrade average = %.2fn, total/n); printf(Number offailures = %drT, count); return 0;3.1.3多分支結(jié)構(gòu)和else - if語句else-if語句是最常用的實(shí)現(xiàn)多分支 (多路選擇)的方法。一般格式為:if(表達(dá)式1)語句1;else if(表達(dá)式2)語句2;else if(表達(dá)式n-1)語句rM; else語句n;源total = 0

6、; count = 0;Enter n: 4Enter grade #1: 67Enter grade #2: 54Enter grade #3: 88Enter grade #4: 73Grade average = 70.50Number of failures = 1if(grade mynumber)printf(HSorry! your number is bigger than my number!nH); elseprintf(HSorry! your number is smaller than my number!”);if(your nu mber = mynumber)

7、printf(Ok! you are right!n);else if(yournumber mynumber)printf(nSorry! your number is bigger than my number!nM);elseprintf(HSorry! your number is smaller than my number!);else if (表達(dá)式 2) 語句 2else源程序分段計(jì)算水費(fèi)# include int main(void)double x, y; printfCEnter x:fl);scanf(lf%lfM, &x); if (x 0) y = o; e

8、lse if (x = 15) y = 4 * x / 3;y = /(%)=、4xTx00 x 15Enter x:Enter x: 9.5f(9.50) = 12.67Enter x: ?Enter x: 21.3f(21.30) = 42.75更改例2-4中的分段計(jì)算水費(fèi)的問題例3-4例2-4中提出的分段計(jì)算水費(fèi)的問題。 居民應(yīng)交水費(fèi)y(元)與月用水量x(噸)的函數(shù) 關(guān)系式修正如下,并編程實(shí)現(xiàn)。0,x 04 Y,0 x 15例3-5求解簡單的四則運(yùn)算表達(dá)式。輸入一個(gè)形式如“操作數(shù)運(yùn)算符操作數(shù)”的四則運(yùn)算表達(dá)式,輸出運(yùn)算結(jié)果。322字符類型3.2.3字符型數(shù)據(jù)的輸入和輸出324邏輯運(yùn)算例3

9、-5輸入一個(gè)形式如“操作數(shù) 運(yùn)算符 操作數(shù)”的四則運(yùn) 算表達(dá)式,輸出運(yùn)算結(jié)果。double valuel, value2;char op;printf(,fType in an expression: ”);scanf(M%lf%c%lfM, &valuel, &op,&value2); if(op =f+f)printf(M=%.2fnf valuel + value2); elseif(op =f-f)printf(”=%.2frT, valuel value2);else if(op =f*f)printf(,f=%.2fnf valuel * value2);

10、else if(op = 7f)printf(M=%.2fnff, valuel / value2);elseprintf(MUnknown operatorE); return 0;321程序解析四則運(yùn)算U!# include int main(void) Typein anexpr3.2.127322字符類型char op;(op=S) (op=)字符型數(shù)據(jù)字符變量op字符常量:+7char為類型名稱;op為char類型變量a A Z 0 9 、n字符常量ASCII字符集:列出所有可用的字符每個(gè)字符:惟一的次序值(ASCII碼)ASCI I碼表O 9AV躋討和符號(hào)符號(hào)LOiHJ符號(hào)IOIH

11、制符號(hào)64P8096pA66Q81a9?qB66R82b98TC67S83c國SD63T84d100tE6U85e101uF70V86f102VG71If87a103VH72X88h104XI73Y89i1067J74z90J1062K7691k10?L76921ioe1M77J93n1CN7894n11007995Q111a112113114115116117118119120121122123124125126127字符變量char op;定義字符變量op,用于存放字符型數(shù)據(jù)。3.2.3字符型數(shù)據(jù)的輸入和輸出調(diào)用scant和printf輸入輸出字符double valuel, value2

12、;char operator;printf(u7ype in an expression:);seanf(u%lf%c%If,5, &value1, &op,&value2); printf(“2f %c %.2f, valuel, op, value2);Type in an expression: 10.0+5.61op =操作數(shù)和運(yùn)算符之間不能出現(xiàn) 空格CD10.00 + 5.61字符輸入函數(shù)getchar()輸入一個(gè)字符char ch;ch = getchar();字符輸出函數(shù)putchar()輸出一個(gè)字符3.2.4邏輯運(yùn)算char ch;printf(MEnt

13、er a character: ”);ch = getchar();if (ch = a,& ch = TV & ch = Z)printf( “It is a letter.nM);elseprintf(ult is not a letterAn );-1 = X = -d并且x = -1 & X 1)&(y1)!(x1)即x1)邏輯運(yùn)算符的功能邏輯與&邏輯或| 邏輯非!a ba&ba|b!a假假假真假真真真真假真假真真真假邏輯表達(dá)式邏輯表達(dá)式:用邏輯運(yùn)算符將邏輯運(yùn)算對象連接起來的式子。(ch = a*) & (ch = a* &

14、; ch = *3* & ch= 7V & ch = T)判斷ch是否為英文字母,分大小寫條件的表示例3 6寫出滿足下列條件的C表達(dá)式。 ch是空格或者回車。ch =,f| ch number是偶數(shù)。number % 2 = 0 year是閏年,即year能被4整除但不能被100整除,或year能被400整除。(year%4 = 0 & year%100 != 0) | (year%400 = 0)例3 7輸入10個(gè)字符,統(tǒng)計(jì) 其中英文字母、數(shù)字字符 和其他字符的個(gè)數(shù)。printf(uEnter 10 characters: ”);for(i = 1; i = 0 &a

15、mp; ch = TV & ch = O & ch = 9)/* 如果ch是數(shù)字字符 */digit+;elseother +;prin tf(ffletter=%d,digit=%d5other=%dn,f,letter5digit5other); return 0;input 10char#include intmain(void) int digit, i,letter, other; char ch;3.3查詢自動(dòng)售貨機(jī)中商品的價(jià)格例3 8查詢自動(dòng)售貨機(jī)中商品的價(jià)格3.3.1程序解析3.3.2 switch語句3.3,3多分支結(jié)構(gòu)3.3.1程序解析假設(shè)自動(dòng)售貨機(jī)出售4種

16、商品,薯片(crisps)、爆 米花(popcorn)、 巧克力(chocolate)和刃樂(cola),售價(jià)分別是每份3.0、2.5、4.0和3.5元。在屏幕上顯示以下菜單,用戶可以連續(xù)査詢商品的價(jià)格,當(dāng)査詢次數(shù)超過5次時(shí),自動(dòng)退出查詢;不到5次時(shí),用戶可以選擇退出。當(dāng)用戶輸入編號(hào)14,顯示相應(yīng)商品的價(jià)格;輸入0,退出查詢;輸入其他編號(hào),顯示 價(jià)格為0。1 Select crisps2 Select popcorn3 Select chocolate4 Select cola0 Exit3.3.2 switch語句處理多分支選擇問題,3種情況1、在 switch 語句的每個(gè)語句段中都使用br

17、eak 語句switch(表達(dá)式)case常量表達(dá)式1:語句段1; break;case常量表達(dá)式2:語句段2 ; break;case常量表達(dá)式m語句段n ; break; default :語句段n+1 ; break;#include ini main(void) int choice, i; double price; for( i= 1; i =5; i+)printfCprintf(,fprintf(Mprintf(,fif(choice = 0) break; switch(choice) case 1: price=3.0;break; case 2: price=2.5; b

18、reak;1 Selectcrisp求解簡單表達(dá)式T騒鱷魏曇蠶加作(要求用switch語句實(shí)現(xiàn)) 例如:輸入:3.1+4.輸出:7.9switch(表達(dá)式)case 常量表狂式 1:case 常量表達(dá)式 2:語句段 1;break;語句段 2 ; break;case常量表達(dá)式ru語句段n ;break;default:語句段 n+1 ; break;switch (choice) case 1: price=3.0; break;# include int main(void) char op; double valuel, value2; printf(f,Type in anexpres

19、sion:tf); scanf(,f%lf%c%lff &valuel, &op, &value2);switch(op)case A:_default:printf(,fUnknown operatornff); break;return 0;2、在switch中不使用breakswitch(表達(dá)式)case常量表達(dá)式1:語句段1;case常量表達(dá)式2:語句段2;case常量表達(dá)式m語句段n; default :語句段n+1;源程序printf(,f=%.2fnM, valuel +value2);break;case :printf(ff=%.2fnft, valu

20、el-value2);break;casef*f:printf(,f=%.2fnft, valuel*value2);break;case V1:printfCf=%.2fnft, value1/value2);break;錯(cuò)誤cType in an expression: 3.1+4.8=7.9如果除數(shù)為0?switch(表達(dá)語句段1;語句段2;case常量表達(dá)式 mdefault:語句段 n;語句段n+1;switchprice=?3、在switch的某些語句段中使用break例3 10輸入10個(gè)字符,分別統(tǒng)計(jì)出其中空格或回車、數(shù)字字符和其他字符的個(gè)數(shù)。胳爲(wèi)吳臨齡蠶統(tǒng)計(jì)其中英文字母、int

21、 main(void) int blank, digit, i, other; char ch; blank = digit = other = 0; printf(f,Enter 10characters: ”);for(i = 1; i mynumber) printf(f,Sorry! your number is biggerthan my number!nf,); elseprintf(MSorry! your number is smaller than my number!nft);if(表達(dá)式2)語句1else語句2elseif(表if語句if(表嵌套的if - else語句else和if的匹配if(表達(dá)式1)if(表達(dá)式 2)語句1else 語句 2elseif(表達(dá)式 3)語句3else 語句 4if(表達(dá)式 1)if(表達(dá)式 2)語句1elseif(表達(dá)式 3)語句3else 語句 4if (表達(dá)式 1)if(表達(dá)式 2)語句 1 elseelse與眾:靠近它的、 沒有與別的els

溫馨提示

  • 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)論