《循環(huán)控制do-whil.ppt》由會員分享,可在線閱讀,更多相關(guān)《循環(huán)控制do-whil.ppt(27頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、項目3:學生總評成績的統(tǒng)計與排序 涉及到的知識點如下:,單元一:while語句的流程以及應(yīng)用 單元二:do-while語句的流程以及應(yīng)用 單元三:for語句的流程以及應(yīng)用 單元四:break、continue語句的應(yīng)用 單元五:循環(huán)結(jié)構(gòu)的嵌套練習 單元六:分支、循環(huán)結(jié)構(gòu)的綜合應(yīng)用 單元七:一維數(shù)組的定義及應(yīng)用 單元八:二維數(shù)組的定義及應(yīng)用 單元九:學生總評成績統(tǒng)計與排序的實現(xiàn),,一般形式為: do 語句組; while(表達式);,1、 do-while語句的格式,3.3do-while語句,2、 do-while語句的執(zhí)行過程,直到型循環(huán),3.3do-while語句
2、,,執(zhí)行 1,Y 執(zhí)行 3,Y 執(zhí)行 2,N 結(jié)束,,Y,,Y,,Y,,Y 執(zhí)行 4,N,,特點: 循環(huán)至少執(zhí)行一次,練習,試用while編寫程序,判斷2000-2010之間的每一個年是否是閏年,是閏年的輸出“xxxx is leap year”,不是閏年的輸出“xxxx is not leap year”, 例如: “2000 is leap year” “2001 is not leap year” . “2010 is not leap year”,問題解析,對這類問題,我們可以找出其中的三大關(guān)鍵是: 1、從什么地方開始; 2、什么時
3、候結(jié)束; 3、反復做什么。,我們可以總結(jié)為: 初始值 循環(huán)做的條件 循環(huán)做的事情,循環(huán)體:通常我們把循環(huán)做的事情稱為循環(huán)體。,對于判斷閏年的問題: 1、從哪里開始? 2、什么時候結(jié)束? 3、反復做的事情? X=2000 /*從這里開始*/ While(x<= 2010) /* 如果條件成立 則結(jié)束*/ 1、 判斷x年是不是閏年 。/*重復要做的事情*/ 2、 ? /* 判斷完當前年,指向下一年*/ ,從2000年開始,到2010年結(jié)束,判斷某年是不是閏年,第一類題目,該類題目一般求解若干數(shù)的和以及這些數(shù)的平均值。 求解思路: 找到從哪里開始,也就是從那個數(shù)開始加起或者乘起。
4、 從哪里結(jié)束,也就是找到加到(或者乘到)哪個數(shù)結(jié)束。 循環(huán)執(zhí)行的動作以及次數(shù):求和或者求解乘積 關(guān)鍵:如何從當前這個數(shù)轉(zhuǎn)到下一個數(shù)。,練習,一、計算12+22+32+42+.+n2 解題步驟: 1、定義保存求和結(jié)果的變量sum,并sum=0。 2、定義變量n,輸入變量n的值。 3、循環(huán)的計算下面的第4和第五步驟: 4、sum=sum+n2 5、n- -,練習,二、功能:編程實現(xiàn)1!+2!++n!的和。 提示: 1、n的值必須通過鍵盤輸入,要不然你不知道加到誰的和。例如輸入6,那就是n==6 2、1!=1 2!=1 2 3!=1 2 3 4!= 1 2 3 4 5!= 1 2 3 4 5
5、6!= 1 2 3 4 5 6 Sum=1!+2!+3!+4!+5!+6!=???,main() long int p,sum=0 ; int i,n; i=1; p=1; /* 先給出n的值,就知道加到誰的階乘了*/ scanf(“%d”, ,練習,三、大家來找茬 #include”stdio.h” main() int sum,i,a; sum=0;i=0; do scanf(“%d”, ,輸入的數(shù)據(jù)分別為:6 -1 Sum=?,練習,四、輸入10個數(shù),統(tǒng)計并輸出正數(shù)、負數(shù)和0的個數(shù)。 提示: 入口:? 出口:? 循環(huán)執(zhí)行的動作:?,練習,四、計算 1/12-1/22+1/3
6、2-1/42+.-1/1002 解題思路: 入口(開始):k=1 出口(結(jié)束):k=100 循環(huán)執(zhí)行的動作: sum=sum+(1/k2)?,練習,五、編程題目: 輸入五個學生的成績,要求每次從鍵盤輸入每個學生的2門成績,計算每個學生的平均分,如果平均分數(shù)大于等于85為優(yōu)秀;8560為及格。統(tǒng)計出成績優(yōu)秀的學生和及格的學生人數(shù)。,練習,六、編程題目: 打印并輸出所有的水仙花數(shù),所謂水仙花是指一個三位數(shù),其各位數(shù)的立方和等于數(shù)本身,如153=13+53+33,練習,七、、計算 s=1/2+2/3+3/4++(n-1)/n 解題思路: 入口(開始):k=1 出口(結(jié)束):k=n 循環(huán)執(zhí)行的動作:
7、sum=sum+ k/( k+1),第二類題目,該類題目一般找尋某個區(qū)間上符合要求的數(shù)。 求解思路: 從哪里開始:也就是從那個數(shù)開始找起。 從哪里結(jié)束:也就是找到哪個數(shù)結(jié)束。 循環(huán)執(zhí)行的動作:判斷這個數(shù) 符不符合要求。 關(guān)鍵:如何從當前這個數(shù)轉(zhuǎn)到下一個數(shù)。,練習,一、請找出1100之間所有的偶數(shù)。 解題步驟: 入口(開始):從1開始 出口(結(jié)束):到100結(jié)束 循環(huán)執(zhí)行的動作: 判斷當前的數(shù)是不是偶數(shù) 判斷完以后如何轉(zhuǎn)到下一個數(shù)呢,比如判斷完23后,如何判斷24是不是偶數(shù)呢?,練習,二、請列出所有的個位數(shù)是4,且能被6整除的2位數(shù)。 解題步驟: 入口(開始):從10開始 出口(結(jié)束):到99結(jié)
8、束 循環(huán)執(zhí)行的動作: 判斷當前的數(shù)個位數(shù)是不是4,并且能被6整除。 當前數(shù)怎么轉(zhuǎn)到下一個數(shù)?,練習,三、功能:編程實現(xiàn)從鍵盤輸入m和n的值,求他們的最大公約數(shù)和最小公倍數(shù)。 提示:首先使用輾轉(zhuǎn)相除法求兩個數(shù)的最大公約數(shù)。然后用兩數(shù)的乘積除以最大公約數(shù),即是兩數(shù)的最小公倍數(shù)。 輾轉(zhuǎn)相除法: 1、設(shè)mn 。 2、令r = m%n 。 3、若r等于0,則n即為最大公約數(shù),退出循環(huán)。否則,令m=n; n=r,轉(zhuǎn)第2步驟。,第三類題目,該類題目一般通過循環(huán)不斷的輸入數(shù)據(jù),然后在做相應(yīng)的處理。 求解思路: 如果讀入的是20個數(shù)據(jù),那么循環(huán)次數(shù)就是20 從哪里開始:可以是1或者其他的。 從哪里結(jié)束:可以是2
9、0或者其他的。 循環(huán)執(zhí)行的動作:輸入數(shù)據(jù),然后在做其他的操作。,練習,一、輸入20個整數(shù),求它們的和以及平均值。 解題步驟: 1、定義一個變量來對輸入的整數(shù)的個數(shù)進行計數(shù) 2、循環(huán)輸入20個整數(shù)求和,存入sum中。 3、計算20個數(shù)的平均值。 4、輸出總和以及平均值。,練習,二、將輸入的一串字符顯示在屏幕上,遇到字符“$”時停止。 解題步驟: 入口(開始):讀入一個字符 出口(結(jié)束):讀入字符“$” 循環(huán)執(zhí)行的動作: 將當前讀入的字符顯示在屏幕上。,三、輸入a和n的值,編寫程序求下列的數(shù)學計算式: a+aa+aaa+aaaa++aa.aa 例如當a=3 n=5時表達式為: 3+33+333+
10、3333+33333,,n個a,四、猴子吃桃問題。 猴子第一天摘下若干個桃子,當即吃了一半,還不過癮,又多吃了一個。第二天又將剩下的桃子,吃掉一半,又多了一個。以后每天將前一天剩下的桃子吃掉一半,再多吃一個。到第10天只剩下一個桃子了,求第一天共摘了多少桃子。,do-while綜合練習,1、計算1+1/2+1/4++1/50的值,并顯示出來 2、計算1+1/3+1/5+.+1/99的和。 3、輸入一個正整數(shù),然后統(tǒng)計該正整數(shù)各位中零的個數(shù),并求各位數(shù)字中的最大者。 4、求和 1+(1+2)+(1+2+3)+(1+2+3+4)+..(1+2+3+4+5+6+7+8+9+10) 5、編寫程序計算1001000之間有多少個數(shù)其各位數(shù)字之和是5.,6、有一分數(shù)序列:1,3,5,8,13,21,用do-while循環(huán)求出這個數(shù)列的前20項之和。 7、有近千名學生排隊,7人一行余3人,5人一行余2人,3人一行余1人,編寫程序求學生人數(shù)。 8、編程序解決百馬百擔問題:有100匹馬,駝100擔貨,大馬駝3擔,中馬駝2擔,兩匹小馬駝1擔,問有大、中、小馬各有多少匹?,