




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
5單元選擇結(jié)構(gòu)程序設(shè)計(jì)C語言程序設(shè)計(jì)任務(wù)驅(qū)動(dòng)式上一單元,我們學(xué)習(xí)了運(yùn)用選擇結(jié)構(gòu)程序設(shè)計(jì)語句完成判斷和選擇的方法。但通常情況下,我們的判斷可以是多次的,即循環(huán)判斷,如小型計(jì)算器可以重復(fù)計(jì)算多次,可以為多個(gè)人預(yù)測身高,可以判斷任意一個(gè)年份是否為閏年等。有關(guān)循環(huán)的例子還有很多,在自然界中,地球繞太陽旋轉(zhuǎn)、每年的四季更替;在生活中,運(yùn)動(dòng)的車輪、旋轉(zhuǎn)的電扇等都為循環(huán)。我們經(jīng)常會(huì)對(duì)輸入的多個(gè)數(shù)據(jù)應(yīng)用相同的計(jì)算,使用循環(huán)語句就解決了煩瑣的重復(fù)問題。如果程序中有需要多次執(zhí)行的語句組,就可進(jìn)行循環(huán)結(jié)構(gòu)程序設(shè)計(jì)。循環(huán)結(jié)構(gòu)是結(jié)構(gòu)化程序設(shè)計(jì)的3種基本結(jié)構(gòu)之一,循環(huán)語句序列可重復(fù)執(zhí)行,直到某條件不成立(或成立)結(jié)束,或完成指定的次數(shù)。循環(huán)結(jié)構(gòu)的編寫由循環(huán)語句來完成,因?yàn)橛袝r(shí)還希望控制循環(huán)的進(jìn)入和退出,所以還會(huì)使用一些循環(huán)控制語句。本單元的6個(gè)典型任務(wù)講解和分析了在C語言程序中,循環(huán)結(jié)構(gòu)的程序設(shè)計(jì)方法。問題引入QuestionIntroduction目錄導(dǎo)航任務(wù)1紅歌比賽計(jì)算平均分—while語句的運(yùn)用任務(wù)2翻牌游戲—do-while語句的運(yùn)用思考與訓(xùn)練單元小結(jié)任務(wù)3彩票中獎(jiǎng)—for語句的運(yùn)用任務(wù)4九九乘法表——循環(huán)嵌套的運(yùn)用任務(wù)5找朋友—break語句的運(yùn)用任務(wù)6猜數(shù)游戲—continue語句的運(yùn)用任務(wù)1紅歌比賽計(jì)算平均分—while語句的運(yùn)用學(xué)院在國慶節(jié)舉辦了“紅色旋律,青春飛揚(yáng)”紅歌比賽,邀請(qǐng)各系組織選手并推選評(píng)委。比賽時(shí),一支參賽隊(duì)伍演唱完畢,由評(píng)委打分,最終成績是所有評(píng)委的平均分。設(shè)評(píng)委人數(shù)不固定,由輸入的評(píng)委人數(shù)決定,每個(gè)評(píng)委打分后進(jìn)行求和,如果打分次數(shù)和評(píng)委人數(shù)不相等,則繼續(xù)打分和求和,打分結(jié)束后計(jì)算平均分,最后輸出最終成績。工作任務(wù)任務(wù)1紅歌比賽計(jì)算平均分—while語句的運(yùn)用思路指導(dǎo)輸入:評(píng)委人數(shù)(intn)。次數(shù)統(tǒng)計(jì):計(jì)數(shù)器(inti)。循環(huán):循環(huán)條件—i<=n;循環(huán)任務(wù)—輸入評(píng)委打分0~100分(intscr),求和(intsum);打分次數(shù)i增1。求平均分:平均分(intave),ave=sum/n。輸出:平均分,即選手比賽成績。相關(guān)知識(shí)(一)循環(huán)概述循環(huán)結(jié)構(gòu)是結(jié)構(gòu)化程序設(shè)計(jì)的基本結(jié)構(gòu)之一,它與順序結(jié)構(gòu)、選擇結(jié)構(gòu)共同作為各種復(fù)雜程序的基本結(jié)構(gòu)。(二)解決循環(huán)問題的基本步驟和方法循環(huán)要完成的任務(wù)主要有3個(gè)。(1)循環(huán)需要確定重復(fù)執(zhí)行的次數(shù),因此要設(shè)計(jì)一個(gè)循環(huán)變量,并對(duì)它進(jìn)行初始化。(2)設(shè)計(jì)循環(huán)條件,即循環(huán)變量的終值,控制循環(huán)的結(jié)束。(3)設(shè)計(jì)循環(huán)反復(fù)執(zhí)行的任務(wù),即循環(huán)體。(三)當(dāng)型循環(huán)while語句1.while語句的語法格式while(表達(dá)式){循環(huán)語句組}2.while語句的執(zhí)行過程當(dāng)表達(dá)式的值為真(即為0)時(shí),執(zhí)行while語句中的循環(huán)語句組,否則執(zhí)行循環(huán)體后續(xù)語句。while語句流程圖如圖所示。(三)當(dāng)型循環(huán)while語句3.while語句的進(jìn)一步說明(1)循環(huán)體如果包含一個(gè)以上的語句,則應(yīng)該用大括號(hào)括起來,以復(fù)合語句的形式出現(xiàn)。(2)在循環(huán)中應(yīng)有使循環(huán)趨向于結(jié)束的語句,即設(shè)置修改條件的語句,如本任務(wù)中的次數(shù)變量i++;。(3)while語句的特點(diǎn)是先判斷表達(dá)式的值,然后決定是否執(zhí)行循環(huán)體中的語句。如果表達(dá)式的值一開始為假(即值為0),則退出循環(huán),并轉(zhuǎn)入循環(huán)體的后續(xù)語句執(zhí)行;如果表達(dá)式的值始終為真(即值為1),則是永久循環(huán)(死循環(huán))。任務(wù)1紅歌比賽計(jì)算平均分—while語句的運(yùn)用任務(wù)實(shí)施1.流程圖程序流程圖如圖5-2所示。2.程序代碼#include<stdio.h>voidmain(){intn,i=1,scr,sum=0,ave;printf("請(qǐng)輸入評(píng)委的人數(shù):");scanf("%d",&n);while(i<=n)
//循環(huán)輸入打分并求和
{printf("請(qǐng)為參賽隊(duì)打分:0~100之間");圖5-2任務(wù)1流程圖任務(wù)1歌唱比賽計(jì)算平均分—while語句的運(yùn)用任務(wù)實(shí)施scanf("%d",&scr);sum+=scr;i++;}ave=sum/n;printf("參賽隊(duì)最終成績是評(píng)委打分平均分:%d",ave);}程序運(yùn)行結(jié)果如圖5-3所示。圖5-3任務(wù)1運(yùn)行結(jié)果任務(wù)1歌唱比賽計(jì)算平均分—while語句的運(yùn)用特別提示(1)循環(huán)變量要有初值。(2)在循環(huán)體中,循環(huán)控制變量要有變化,并且使得循環(huán)條件可以為假,以跳出循環(huán),避免出現(xiàn)“死循環(huán)”。(3)打分和sum初值為0。目錄導(dǎo)航任務(wù)1歌唱比賽計(jì)算平均分—while語句的運(yùn)用任務(wù)2翻牌游戲—do-while語句的運(yùn)用思考與訓(xùn)練單元小結(jié)任務(wù)3彩票中獎(jiǎng)—for語句的運(yùn)用任務(wù)4九九乘法表——循環(huán)嵌套的運(yùn)用任務(wù)5找朋友—break語句的運(yùn)用任務(wù)6猜數(shù)游戲—continue語句的運(yùn)用任務(wù)2翻牌游戲—do-while語句的運(yùn)用有這樣的一個(gè)紙牌小游戲,3個(gè)人一起玩,不分花色,一人選擇奇數(shù)牌,一人選擇偶數(shù)牌,一人負(fù)責(zé)唱分,A為1分……K為13分,直到兩人中某人抽到大王或小王(按0分對(duì)待)游戲結(jié)束,最終兩人積分高者勝出。試用C語言編寫程序模擬此游戲。工作任務(wù)任務(wù)2翻牌游戲—do-while語句的運(yùn)用思路指導(dǎo)循環(huán)輸入:由唱分人負(fù)責(zé)輸入分值。循環(huán)條件:不是大小王(0分)。輸出:兩人總得分。判斷輸贏:比較奇數(shù)和與偶數(shù)和的大小。任務(wù)2翻牌游戲—do-while語句的運(yùn)用相關(guān)知識(shí)1.“直到型”循環(huán)do-while語句do-while語句的語法格式如下。do{循環(huán)語句組}While(表達(dá)式);2.do-while語句執(zhí)行過程先執(zhí)行一次指定的循環(huán)體語句,然后判斷表達(dá)式的值,當(dāng)表達(dá)式的值為非0時(shí),返回重新執(zhí)行該語句,如此反復(fù),直到表達(dá)式的值等于0為止,此時(shí)循環(huán)結(jié)束。do-while語句的流程圖如圖5-4所示。圖5-4
do-while語句流程圖任務(wù)2翻牌游戲—do-while語句的運(yùn)用3.do-while語句的進(jìn)一步說明(1)do-while語句是先執(zhí)行一次語句序列,后判斷表達(dá)式的值。(2)如果do-while語句的循環(huán)體部分是由多個(gè)語句組成的,則必須用左右大括號(hào)括起來,使其形成復(fù)合語句。(3)書寫時(shí)不要忘記while圓括號(hào)后面有一個(gè)分號(hào)“;”。任務(wù)2翻牌游戲—do-while語句的運(yùn)用任務(wù)實(shí)施1.流程圖程序流程圖如圖所示。2.程序代碼#include<stdio.h>voidmain(){inti,k,sum1=0,sum2=0;do //循環(huán){printf("請(qǐng)輸入奇數(shù)玩家分值");scanf("%d",&i);
//輸入
if(i%2!=0) //奇數(shù)分值求和任務(wù)2翻牌游戲—do-while語句的運(yùn)用sum1+=i;}while(i!=0);do //循環(huán){printf("請(qǐng)輸入偶數(shù)玩家分值");scanf("%d",&k); //輸入
if(k%2==0) //偶數(shù)分值求和
sum2+=k;}while(k!=0);printf("奇數(shù)分值是:%d偶數(shù)分值是:%d",sum1,sum2);if(sum1>sum2)printf("奇數(shù)玩家贏!");elseif(sum1<sum2)printf("偶數(shù)玩家贏!");elseif(sum1==sum2)printf("平局!");}程序運(yùn)行結(jié)果如圖5-6所示。圖5-6任務(wù)2運(yùn)行結(jié)果任務(wù)2翻牌游戲—do-while語句的運(yùn)用特別提示while語句和do-while語句的區(qū)別:在循環(huán)條件和循環(huán)體相同的情況下,while后面的表達(dá)式第一次的值為“真”時(shí),兩種循環(huán)得到的結(jié)果相同;當(dāng)while后面的表達(dá)式第一次的值為“假”時(shí),while語句一次也不執(zhí)行,而do-while語句可以順利執(zhí)行一次。目錄導(dǎo)航任務(wù)1歌唱比賽計(jì)算平均分—while語句的運(yùn)用任務(wù)2翻牌游戲—do-while語句的運(yùn)用思考與訓(xùn)練單元小結(jié)任務(wù)3彩票中獎(jiǎng)—for語句的運(yùn)用任務(wù)4九九乘法表——循環(huán)嵌套的運(yùn)用任務(wù)5找朋友—break語句的運(yùn)用任務(wù)6猜數(shù)游戲—continue語句的運(yùn)用任務(wù)3彩票中獎(jiǎng)—for語句的運(yùn)用設(shè)計(jì)一個(gè)小型模擬彩票中獎(jiǎng)機(jī),已知彩票中獎(jiǎng)號(hào)碼是一個(gè)固定的3位數(shù)(原始號(hào)碼)。對(duì)任意一個(gè)3位數(shù),取出它的每位數(shù)字和原始號(hào)碼的每位數(shù)字比較,有1位數(shù)相同中三等獎(jiǎng),有2位數(shù)相同中二等獎(jiǎng),有3位數(shù)相同中一等獎(jiǎng)。在所有的三位數(shù)中比較,輸出所有中獎(jiǎng)數(shù)字。并深入探究中獎(jiǎng)的奧秘,同時(shí)引導(dǎo)大家思考運(yùn)氣、努力、誠信與公平等價(jià)值觀。工作任務(wù)任務(wù)3彩票中獎(jiǎng)—for語句的運(yùn)用思路指導(dǎo)初始化:原始號(hào)碼為123。循環(huán):循環(huán)變量i是100~999的數(shù)字,個(gè)位a=i%10,十位b=i/10%10,百位c=i/100%10。計(jì)數(shù)器:k。條件判斷:判斷a,b,c是否為1,2,3,有一個(gè)相等,則k++。條件輸出:判斷k=1輸出“三等獎(jiǎng)+數(shù)字”;k=2輸出“二等獎(jiǎng)+數(shù)字”;k=3輸出“一等獎(jiǎng)+數(shù)字”。任務(wù)3彩票中獎(jiǎng)—for語句的運(yùn)用相關(guān)知識(shí)1.for語句語法格式for(表達(dá)式1;表達(dá)式2;表達(dá)式3){循環(huán)語句組}2.for語句執(zhí)行過程(1)先計(jì)算表達(dá)式1的值。(2)再計(jì)算表達(dá)式2的值。若其值為真,則執(zhí)行循環(huán)體一次;否則跳轉(zhuǎn)到第(5)步。(3)計(jì)算表達(dá)式3的值。(4)回轉(zhuǎn)到上面第(2)步。(5)結(jié)束循環(huán),執(zhí)行for語句的后續(xù)語句。for語句的流程圖如圖5-7所示。圖5-7
for語句流程圖任務(wù)3彩票中獎(jiǎng)—for語句的運(yùn)用3.for語句說明(1)表達(dá)式1一般為賦值表達(dá)式,用于進(jìn)入循環(huán)之前給循環(huán)變量賦初值,后面用“;”分隔。(2)表達(dá)式2一般為關(guān)系表達(dá)式或邏輯表達(dá)式,用于執(zhí)行循環(huán)的條件判定語句,它與while、do-while循環(huán)中的表達(dá)式作用完全相同,后面用“;”分隔。(3)表達(dá)式3一般為賦值表達(dá)式或自增(i=i+1可表示成i++)、自減(i=i?1可表示成i??)表達(dá)式,用于修改循環(huán)變量的值。(4)如果循環(huán)體部分是多個(gè)語句組成的,則必須用大括號(hào)括起來,使其成為一個(gè)復(fù)合語句。任務(wù)3彩票中獎(jiǎng)—for語句的運(yùn)用任務(wù)實(shí)施1.流程圖程序流程圖如圖5-8所示。2.程序代碼#include<stdio.h>voidmain(){inti,a,b,c,k=0,num=0;intn=123;//中獎(jiǎng)原始號(hào)碼printf("輸出所有中獎(jiǎng)號(hào)碼:\n");圖4-8任務(wù)2流程圖任務(wù)3彩票中獎(jiǎng)—for語句的運(yùn)用for(i=100;i<=999;i++)//循環(huán)判斷3位數(shù)中的中獎(jiǎng)數(shù)字{a=i%10;//求個(gè)位
b=i/10%10;//求十位
c=i/100%10;//求百位
if(a==3)k++;//個(gè)位是3,k=1if(b==2)k++;//十位是2,k=2if(c==1)k++;//百位是1,k=3if(k==1){printf("三等獎(jiǎng)%-5d",i);
num++;k=0;}//根據(jù)k的值判定獲獎(jiǎng)等級(jí)
if(k==2){printf("二等獎(jiǎng)%-5d",i);num++;k=0;}if(k==3){printf("一等獎(jiǎng)%-5d",i);num++;k=0;}if(num==6){printf("\n");num=0;}//一行顯示6個(gè)數(shù)字
}}程序運(yùn)行結(jié)果如圖5-9所示。圖5-9任務(wù)3運(yùn)行結(jié)果任務(wù)3彩票中獎(jiǎng)—for語句的運(yùn)用特別提示(1)for語句的一般形式中的“表達(dá)式1”可以省略。但要注意省略表達(dá)式1時(shí),其后的分號(hào)不能省略。例如:i=1;for(;i<=100;i++)sum=sum+i;(2)如果省略表達(dá)式2,即表示表達(dá)式2的值始終為真,循環(huán)將無終止地進(jìn)行下去。例如:for(i=1;;i++)printf("%d",i);任務(wù)3彩票中獎(jiǎng)—for語句的運(yùn)用(3)如果省略表達(dá)式3,也將產(chǎn)生一個(gè)無窮循環(huán),因此,應(yīng)另外設(shè)法保證循環(huán)能正常結(jié)束??梢詫⒀h(huán)變量的修改部分(即表達(dá)式3)放在循環(huán)語句中控制。例如:for(i=1;i<=100;){printf("%d",i);i++;}(4)可以同時(shí)省略表達(dá)式1和表達(dá)式3,即省略了循環(huán)的初值和循環(huán)變量的修改部分,此時(shí)完全等價(jià)于while語句。例如:i=1;for(;i<=10;){printf("%d",i);
i++;}目錄導(dǎo)航任務(wù)1歌唱比賽計(jì)算平均分—while語句的運(yùn)用任務(wù)2翻牌游戲—do-while語句的運(yùn)用思考與訓(xùn)練單元小結(jié)任務(wù)3彩票中獎(jiǎng)—for語句的運(yùn)用任務(wù)4九九乘法表——循環(huán)嵌套的運(yùn)用任務(wù)5找朋友—break語句的運(yùn)用任務(wù)6猜數(shù)游戲—continue語句的運(yùn)用任務(wù)4九九乘法表——循環(huán)嵌套的運(yùn)用小學(xué)生的乘法口訣“九九乘法表”是一個(gè)9行9列的表格,行和列均從1變化到9,如表5-1所示。工作任務(wù)
12345678911×1=12×1=23×1=34×1=45×1=56×1=67×1=78×1=89×1=921×2=12×2=43×2=64×=85×2=106×2=127×2=148×2=169×2=1831×3=32×3=63×3=94×3=125×3=156×3=187×3=218×3=249×3=2741×4=42×4=83×4=124×4=165×4=206×4=247×4=288×4=329×4=3651×5=52×5=103×5=154×5=205×5=256×5=307×5=358×5=409×5=4561×6=62×6=123×6=184×6=245×6=306×6=367×6=428×6=489×6=5471×7=72×7=143×7=214×7=285×7=356×7=427×7=498×7=569×7=6381×8=82×8=163×8=244×8=325×8=406×8=487×8=568×8=649×8=7291×9=92×9=183×9=274×9=365×9=456×9=547×9=638×9=729×9=81任務(wù)4九九乘法表——循環(huán)嵌套的運(yùn)用思路指導(dǎo)行:變量inti,i從1~9循環(huán)變化。列:變量intj,j從1~9循環(huán)變化。輸出:j,i,j*i。一行輸出完畢回車,進(jìn)行下一行的輸出。任務(wù)4九九乘法表——循環(huán)嵌套的運(yùn)用相關(guān)知識(shí)一個(gè)循環(huán)體內(nèi)又包含另一個(gè)完整的循環(huán)結(jié)構(gòu),稱為循環(huán)的嵌套。內(nèi)嵌的循環(huán)中還可以嵌套循環(huán),這就是多層循環(huán)。3種循環(huán)—while循環(huán)、do-while循環(huán)和for循環(huán)可以互相嵌套。任務(wù)4九九乘法表——循環(huán)嵌套的運(yùn)用任務(wù)實(shí)施1.流程圖程序流程圖如圖5-10所示。2.程序代碼
#include<stdio.h>voidmain(){inti,j;printf("滿九九乘法表:\n");
for(i=1;i<=9;i++)//外循環(huán)變量i{for(j=1;j<=9;j++)//內(nèi)循環(huán)變量jprintf("%d*%d=%-4d",j,i,i*j);//輸出i*jprintf("\n");}}圖5-10任務(wù)4流程圖任務(wù)4九九乘法表——循環(huán)嵌套的運(yùn)用任務(wù)實(shí)施程序運(yùn)行結(jié)果如圖5-11所示。圖5-11任務(wù)4運(yùn)行結(jié)果任務(wù)4九九乘法表——循環(huán)嵌套的運(yùn)用特別提示(1)循環(huán)嵌套需要注意內(nèi)外循環(huán)的關(guān)系,任務(wù)4的程序代碼先進(jìn)入外循環(huán)執(zhí)行,然后執(zhí)行內(nèi)循環(huán),執(zhí)行輸出回車語句,至此外循環(huán)方執(zhí)行一次,再進(jìn)入下一次外循環(huán)的執(zhí)行。(2)注意輸出回車語句所在的位置。目錄導(dǎo)航任務(wù)1歌唱比賽計(jì)算平均分—while語句的運(yùn)用任務(wù)2翻牌游戲—do-while語句的運(yùn)用思考與訓(xùn)練單元小結(jié)任務(wù)3彩票中獎(jiǎng)—for語句的運(yùn)用任務(wù)4九九乘法表——循環(huán)嵌套的運(yùn)用任務(wù)5找朋友—break語句的運(yùn)用任務(wù)6猜數(shù)游戲—continue語句的運(yùn)用任務(wù)5找朋友—break語句的運(yùn)用日常生活中我們玩過找朋友的游戲。一個(gè)同學(xué)在一群同學(xué)中找朋友,找到朋友后換下一個(gè)同學(xué)再找朋友?,F(xiàn)在設(shè)計(jì)一個(gè)找字母朋友的游戲,從鍵盤輸入字符ch,如果輸入的ch是字母,則輸出找到的字母朋友ch,如果輸入的不是字母,則結(jié)束游戲。工作任務(wù)任務(wù)5找朋友—break語句的運(yùn)用思路指導(dǎo)使用while循環(huán)。輸入:輸入字符ch。處理:如果是字母朋友,則輸出找到的ch字母繼續(xù)循環(huán)。循環(huán)結(jié)束:如果輸入的不是字母,則結(jié)束循環(huán)。任務(wù)5找朋友—break語句的運(yùn)用相關(guān)知識(shí)1.break語句該語句可以使程序運(yùn)行時(shí)中途跳出循環(huán)體,即強(qiáng)制結(jié)束循環(huán),接著執(zhí)行循環(huán)體的后續(xù)語句。2.break語句語法格式break;任務(wù)5找朋友—break語句的運(yùn)用任務(wù)實(shí)施1.流程圖程序流程圖如圖5-12所示。2.程序代碼#include<stdio.h>voidmain(){charch;while(1)//循環(huán)
{printf("請(qǐng)輸入要找的朋友:");ch=getchar();//輸入字符
getchar();圖5-12任務(wù)5流程圖任務(wù)5找朋友—break語句的運(yùn)用任務(wù)實(shí)施if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')//判斷是否是字母朋友
printf("找到字母朋友%c\n",ch);else{printf("不是字母朋友,退出游戲!\n");//不是字母,退出
break;}}
}程序運(yùn)行結(jié)果如圖5-13所示。任務(wù)5找朋友—break語句的運(yùn)用特別提示(1)while(1)是永久循環(huán),即死循環(huán)。(2)如果輸入的字符是字母朋友,則繼續(xù)循環(huán)輸入找下一個(gè)朋友。如果不是字母,則用break語句強(qiáng)制結(jié)束循環(huán)。目錄導(dǎo)航任務(wù)1歌唱比賽計(jì)算平均分—while語句的運(yùn)用任務(wù)2翻牌游戲—do-while語句的運(yùn)用思考與訓(xùn)練單元小結(jié)任務(wù)3彩票中獎(jiǎng)—for語句的運(yùn)用任務(wù)4九九乘法表——循環(huán)嵌套的運(yùn)用任務(wù)5找朋友—break語句的運(yùn)用任務(wù)6猜數(shù)游戲—continue語句的運(yùn)用任務(wù)6猜數(shù)游戲—continue語句的運(yùn)用現(xiàn)在再玩一個(gè)猜數(shù)游戲。請(qǐng)玩家輸入一個(gè)猜的數(shù),范圍是0~9,然后猜出100以內(nèi)能被這個(gè)輸入的數(shù)字整除且個(gè)位數(shù)也是這個(gè)數(shù)字的所有整數(shù)。輸出所有猜的數(shù)時(shí),游戲結(jié)束。工作任務(wù)任務(wù)6猜數(shù)游戲—continue語句的運(yùn)用思路指導(dǎo)輸入要猜的數(shù)字:intn;。for循環(huán):十位數(shù)作為循環(huán)變量,初值為0,終值為9。計(jì)算該數(shù):j=i*10+n。條件判斷:如果j不能被n整除,則繼續(xù)循環(huán)不輸出;如果j能被n整除,則輸出該數(shù)。循環(huán)結(jié)束:輸出“猜數(shù)完畢!”。任務(wù)6猜數(shù)游戲—continue語句的運(yùn)用相關(guān)知識(shí)1.continue語句結(jié)束本次循環(huán),即不再執(zhí)行循環(huán)體中continue語句下面尚未執(zhí)行的語句,而進(jìn)行下一次是否執(zhí)行循環(huán)的判定。2.continue語句的語法格式continue;任務(wù)6猜數(shù)游戲—continue語句的運(yùn)用任務(wù)實(shí)施1.流程圖程序流程圖如圖5-14所示。2.程序代碼#include<stdio.h>voidmain(){intn,i,j;printf("**********猜數(shù)游戲**********\n");printf("請(qǐng)輸入猜的數(shù)1~9:");scanf("%d",&n);//輸入要猜的數(shù)n圖5-12任務(wù)5流程圖任務(wù)6猜數(shù)游戲—continue語句的運(yùn)用printf("請(qǐng)猜出100以內(nèi)能被%d整除且個(gè)位數(shù)也是%d的所有整數(shù):\n",n,n);for(i=0;i<=9;i++) //循環(huán)變量i作為十位數(shù)
{j=i*10+n; //求得個(gè)位是n的兩位數(shù)
if(j%n!=0)continue;
//判斷該兩位數(shù)是否能被n整除
printf("%d\n",j);}printf("猜數(shù)完畢!");}程序運(yùn)行結(jié)果如圖所示。任務(wù)6猜數(shù)游戲—continue語句的運(yùn)用特別提示(1)因?yàn)閭€(gè)位數(shù)是4,所以將十位數(shù)作為循環(huán)變量。(2)在循環(huán)體中先計(jì)算出要猜的數(shù),然后判斷該數(shù)是否能被4整除,如不能整除,則用continue語句猜下一個(gè)數(shù),不用執(zhí)行本次循環(huán)的輸出語句。(3)思考:如果此題玩家想重復(fù)猜數(shù)怎么辦?提示:使用循環(huán)嵌套完成。拓展與提高任務(wù)6猜數(shù)游戲—continue語句的運(yùn)用1.輸出簡化九九乘法表前面輸出的是滿九九表的形式,但常見的是如表所示的簡化九九乘法表。1×1=1
1×2=22×2=4
1×3=32×3=63×3=9
1×4=42×4=83×4=124×4=16
1×5=52×5=103×5=154×5=205×5=25
1×6=62×6=123×6=184×6=245×6=306×6=36
1×7=72×7=143×7=214×7=285×7=356×7=427×7=49
1×8=82×8=163×8=244×8=325×8=406×8=487×8=568×8=64
1×9=92×9=183×9=274×9=365×9=456×9=547×9=638×9=729×9=81任務(wù)6猜數(shù)游戲—continue語句的運(yùn)用程序?qū)崿F(xiàn)如下。#include<stdio.h>voidmain(){inti,j;printf("輸出簡化九九乘法表:\n");for(i=1;i<=9;i++){for(j=1;j<=i;j++)printf("%d*%d=%-4d",j,i,i*j);printf("\n");}}程序運(yùn)行結(jié)果如圖所示。任務(wù)6猜數(shù)游戲—continue語句的運(yùn)用2.輸出3000年以內(nèi)的所有閏年必備的基礎(chǔ)知識(shí):一年中1、3、5、7、8、10、12月都是31天,4、6、9、11月都是30天;2月閏年29天,非閏年28天;閏年一年366天,非閏年一年365天。判斷閏年:能被4整除同時(shí)不能被100整除的年份,或者能被400整除的年份,即if(((year%4==0)&&(year%100!=0))||(year%400==0))。參考程序代碼如下。#include<stdio.h>voidmain(){intyear,i=0;printf("輸出3000年以內(nèi)的所有閏年:\n");for(year=1;year<=3000;year++){if(((year%4==0)&&(year%100!=0))||(year%400==0)){printf("%d",year);i++;}if(i==6){printf("\n");i=0;}}}任務(wù)6猜數(shù)游戲—continue語句的運(yùn)用程序運(yùn)行結(jié)果如圖所示。目錄導(dǎo)航任務(wù)1歌唱比賽計(jì)算平均分—while語句的運(yùn)用任務(wù)2翻牌游戲—do-while語句的運(yùn)用思考與訓(xùn)練單元小結(jié)任務(wù)3彩票中獎(jiǎng)—for語句的運(yùn)用任務(wù)4九九乘法表——循環(huán)嵌套的運(yùn)用任務(wù)5找朋友—break語句的運(yùn)用任務(wù)6猜數(shù)游戲—continue語句的運(yùn)用單元小結(jié)Summary本單元重點(diǎn)介紹了循環(huán)結(jié)構(gòu)的用法,循環(huán)結(jié)構(gòu)需要確定循環(huán)語句的初值、循環(huán)結(jié)束條件以及循環(huán)體,并結(jié)合幾個(gè)小游戲介紹和分析了3種基本循環(huán)結(jié)構(gòu)語句while、do-while、for的用法。還介紹了兩種循環(huán)控制語句break和continue的區(qū)別與用法。通過本單元的學(xué)習(xí),讀者能夠了解循環(huán)程序設(shè)計(jì)的特點(diǎn)和一般規(guī)律。編寫程序時(shí),應(yīng)從可讀性和程序效率方面進(jìn)行綜合考慮,使用合適的語句結(jié)構(gòu),以提高代碼質(zhì)量。目錄導(dǎo)航任務(wù)1歌唱比賽計(jì)算平均分—while語句的運(yùn)用任務(wù)2翻牌游戲—do-while語句的運(yùn)用思考與訓(xùn)練單元小結(jié)任務(wù)3彩票中獎(jiǎng)—for語句的運(yùn)用任務(wù)4九九乘法表——循環(huán)嵌套的運(yùn)用任務(wù)5找朋友—break語句的運(yùn)用任務(wù)6猜數(shù)游戲—continue語句的運(yùn)用思考與訓(xùn)練Thinkingandpracticing1.討論題(三種循環(huán)語句適用什么循環(huán)的情況,比如:固定次數(shù)的循環(huán)和不固定次數(shù)的循環(huán)等。思考與訓(xùn)練Thinkingandpracticing2.選擇題(1)以下程序段是()。x=-1;do
{x=x*x;}
while(!x);A.死循環(huán) B.循環(huán)執(zhí)行二次 C.循環(huán)執(zhí)行一次 D.有語法錯(cuò)誤(2)執(zhí)行語句for(i=1;i++<4;);后,變量i的值是()。A.3 B.0 C.5 D.不定(3)循環(huán)語句for(x=0,y=0;(y!=123)||(x<4);x++);的循環(huán)執(zhí)行次數(shù)為()。A.無限次 B.不確定次數(shù) C.4 D.3(4)假定a和b為int類
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 期中測試卷(人教版)(解析版)
- 2025電力線路建設(shè)承包合同
- 2025短期勞動(dòng)合同協(xié)議書模板
- 2025關(guān)于索取合同缺失的勞動(dòng)合同證明事宜
- 《石油煉制中的脫硫工藝》課件
- 聊聊分?jǐn)?shù)那些事兒-2025第二學(xué)期期中考試后主題班會(huì)講話稿
- 風(fēng)力發(fā)電機(jī)組空氣過濾器更換
- 2025房產(chǎn)抵押借款合同模板2
- 五年級(jí)上冊(cè)信息技術(shù)教學(xué)設(shè)計(jì)-第11課 學(xué)校開放日-動(dòng)畫創(chuàng)作與合成∣粵教版
- 2025年合作c1貨運(yùn)上崗證模擬考試
- 2025山西杏花村旅游開發(fā)有限公司招聘50人筆試參考題庫附帶答案詳解
- 貫徹落實(shí)清理規(guī)范非融資性擔(dān)保方案指導(dǎo)意見
- 工程甩項(xiàng)合同協(xié)議
- 期中模擬卷(新疆專用)-2024-2025學(xué)年八年級(jí)英語下學(xué)期核心素養(yǎng)素質(zhì)調(diào)研模擬練習(xí)試題(考試版)A4
- 2025廣東省深圳市中考數(shù)學(xué)復(fù)習(xí)分類匯編《函數(shù)綜合題》含答案解析
- 金融工程重點(diǎn)總結(jié)
- 漁業(yè)資源與漁場學(xué)課件藍(lán)點(diǎn)馬鮫學(xué)習(xí)資料
- 2025年度毛絨玩具采購合同
- 2024年四川成都農(nóng)業(yè)科技中心招聘筆試真題
- 胸腔積液課件
- 《內(nèi)河運(yùn)輸船舶重大事故隱患判定標(biāo)準(zhǔn)》知識(shí)培訓(xùn)
評(píng)論
0/150
提交評(píng)論