第五章决策叙述.doc

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章决策叙述.doc

第五章 決策敘述 人類的生活必須不斷面對決策問題,連我家一個不到三歲的小孩,也常要思考他手裡的十元是要坐電動車還是買棒棒糖。程式語言是協助解決人類問題的工具,當然也有決策敘述,C語言依決策點的多寡,分為以下三種決策敘述,第一是單一分歧決策的If - Then,例如肚子餓了就吃飯;第二是雙向分歧決策If - Then Else,例如肚子 餓了就吃飯,否則繼續前進;第三是多向分歧決策的Select Case,例如你身上5000元,走進一家五星級的大飯店用餐,你的分歧點就很多,有自助餐、中式套餐、日本料理、泰國餐點等等分歧點。本章的重點即是探討C語言的決策敘述。 5-1 if if通常用於單一分歧的決策,它的使用時機為“假如~則~”,也就是條件成立時,則執行某項工作,但若條件不成立時,則不予理會。其語法如下: if (運算式) { 敘述區塊; } 以上語法說明如下: 1. 若運算式的值為1(true)則執行敘述區塊,運算式的值若為0(false),則不會被執行,其流程圖如下: 2. 敘述區塊內的敘述若只有一個,則敘述區塊上下兩個大括號可予省略。例如, 以下敘述可以判斷變數a是否等於0,若條件成立則輸出Game Over。 if(a==0) printf(〝Game Over 〞); 3. 若敘述區塊上下的大括號遺漏,則條件成立時,C語言僅執行敘述區塊的第一個敘述,但更嚴重的問題,敘述區快第二個以後的敘述,不論條件成立與否,均含自動執行。例如,以下敘述執行之後,b=0,c=3。 a=2;b=0;c=0; if(a= =0) b=3; c=3; printf(“%d, %d”, b, c); /* b=0, c=3 */ 4. 敘述區塊內可以放置任何合法的敘述,當然也可以放置if,if中有if 稱為巢狀if。例 如,以下敘述除可判斷a是否及格,更可判斷其是否優等。 if(a=60) { b=”pass”; 及格 if (a=90) c=”outstanding”; 優等 } 範例5-1a 請輸入一個成績,若此成績大於等於60分,則輸出“及格”。 【執行結果】 【程式列印】 本例即是單一分歧決策的典型範例,當條件成立時,則執行某個敘述。 範例 5_1b 請寫一程式,滿足以下條件。 1、 輸入兩個數。 2、 求輸入兩數極大值。 3、 輸出極大值。 【執行結果】 【程式列印】 [演算法則] 1. 輸入第一數,本例以變數a儲存。 2. 輸入第二數,本例以變數b儲存。 3. 設定極大值(max)為第一數。 max=a 4. 當第二數(b)大於極大值時,極大值即以b取代。 if (bmax) max=b; 5. 輸出極大值(max)即為所求。 【自我練習】 請寫一程式,滿足以下條件。 1、 輸入三個數。 2、 求三個數極小值。 3、 輸出極小值。 [演算法則] 1. 輸入第一個數,本例以變數a儲存。 2. 輸入第二個數,本例以變數b儲存。 3. 輸入第三個數,本例以變數c儲存。 4. 設定極大值(max)為第一數。 5. 當第二數(b)大於極大值時,極大值即以b取代。 if (bmax) max = b; 6. 當第三數(c)大於極大值時,極大值即以c取代。 if (cmax) max = c; 7. 輸出極大值 max。 範例 5_1c 請寫一程式,滿足以下條件。 1、 輸入三個數。 2、 將此三個數由小而大輸出。 【執行結果】 【程式列印】 【程式說明】 1. 分別以a、b及c表示欲排序的資料。 2. 假如a大於b,則a與b交換,如下圖的(1)。 3. 假如b大於c,則b與c交換,如下圖的(2)。 4. 假如a大於b,則a與b交換,如下圖的(3)排序已完成,共需進行3次的比較與交換,如下圖所示。 a b C (1) (2) (3) [補充說明] 1. 若有4筆資料需要排序,則共需進行6次比較與交換,如下圖所示。 a b C D (1) (2) (3) (4) (5) (6) 2. 若有5筆資料需排序,則共需進行10次比較與交換,如下圖所示。 a b c d e (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) 3. 以上為3、4或5筆資料的比較與排序,其比較與交換的次數尚可克服。但是,若欲排序的資料超過5個,例如20筆資料欲排序,則應待迴圈與陣列敘述介紹以後,才有較快速的解法。 【自我練習】 1、 將4個數

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档