版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C程序設(shè)計(jì)專題輔導(dǎo)課
循環(huán)結(jié)構(gòu)程序設(shè)計(jì)
內(nèi)容提要:循環(huán)結(jié)構(gòu)3.1for語(yǔ)句一般形式:
for(表達(dá)式1;表達(dá)式2;表達(dá)式3)
循環(huán)體語(yǔ)句注意:for語(yǔ)句是一個(gè)整體,中間不能被打斷;循環(huán)體語(yǔ)句必須是一條語(yǔ)句(或復(fù)合語(yǔ)句)表達(dá)式1:初始化,循環(huán)開始之前執(zhí)行1次表達(dá)式2:循環(huán)條件,每次循環(huán)前先判斷其值3.1for語(yǔ)句表達(dá)式3:每次循環(huán)體語(yǔ)句執(zhí)行后,執(zhí)行1次3個(gè)表達(dá)式及循環(huán)體語(yǔ)句的執(zhí)行順序和書寫順序不同3個(gè)表達(dá)式都可以省略,但分隔符“;”不能省略表達(dá)式2省略表示循環(huán)條件永遠(yuǎn)成立for(;;)while(1)3.1for語(yǔ)句常用循環(huán)變量控制形式:sum=0;
for(i=1;i<=100;i++)sum=sum+i;注意:循環(huán)變量i的值變化與循環(huán)執(zhí)行的次數(shù)循環(huán)體語(yǔ)句向右縮進(jìn)對(duì)齊循環(huán)過程中務(wù)必確保循環(huán)條件最終不成立3.2while語(yǔ)句一般形式:
while(表達(dá)式)
循環(huán)體語(yǔ)句注意:while語(yǔ)句是一個(gè)整體,中間不能被打斷;循環(huán)體語(yǔ)句必須是一條語(yǔ)句(或復(fù)合語(yǔ)句)表達(dá)式:可以是任意表達(dá)式每次循環(huán)開始前,都要先計(jì)算表達(dá)式的值3.3do-while語(yǔ)句一般形式:
do
循環(huán)體語(yǔ)句while(表達(dá)式)注意:do-while語(yǔ)句是整體,中間不能被打斷;循環(huán)體語(yǔ)句必須是一條語(yǔ)句(或復(fù)合語(yǔ)句)表達(dá)式:可以是任意表達(dá)式先執(zhí)行循環(huán)體語(yǔ)句,再判斷表達(dá)式真假3.4三種循環(huán)語(yǔ)句的選擇理論上:三者可以相互轉(zhuǎn)換原則上:if(循環(huán)次數(shù)已知) 使用for語(yǔ)句else { /*循環(huán)次數(shù)未知*/
if(循環(huán)條件在進(jìn)入循環(huán)時(shí)明確) 使用while語(yǔ)句
else /*循環(huán)條件需要在循環(huán)體中明確*/ 使用do-while語(yǔ)句}3.5break語(yǔ)句和continue語(yǔ)句作用:break結(jié)束循環(huán),即使還剩有正常循環(huán)次數(shù)continue結(jié)束本次循環(huán),提前進(jìn)入到下一次循環(huán)適用范圍:break可用于循環(huán)和switch語(yǔ)句中Continue只能用于循環(huán)語(yǔ)句中3.6嵌套循環(huán)一個(gè)循環(huán)語(yǔ)句的循環(huán)體也是循環(huán)語(yǔ)句:sum=0;/*求1!+2!+…+n!*/for(i=1;i<=n;i++){item=1;for(j=1;j<=i;j++)item=item*j;sum=sum+item;}i循環(huán)(外循環(huán))/j循環(huán)(內(nèi)循環(huán))變化關(guān)系3.7循環(huán)結(jié)構(gòu)程序設(shè)計(jì)要點(diǎn)循環(huán)體:歸納出哪些操作需要反復(fù)執(zhí)行循環(huán)控制條件:這些操作在什么情況下重復(fù)執(zhí)行選擇循環(huán)結(jié)構(gòu)for、while、do-while3.8舉例(1)1.判斷某個(gè)整數(shù)n是否“水仙花”數(shù)(即各位數(shù)字的立方和等于該數(shù)本身)?!痉治觥筷P(guān)鍵是求各位數(shù)字立方和:對(duì)整數(shù)n求第i位數(shù)字:bi=n%10,n=n/10求各位數(shù)字立方和:sum=∑bi*bi*bi循環(huán)體:bi=n%10,n=n/10,∑bi*bi*bi循環(huán)條件:n!=0
循環(huán)次數(shù)未知且至少做1次:用do-while3.8舉例(2)#include<stdio.h>int
main(void){
intn,m,b,sum;
scanf(“%d”,&n);sum=0;m=n;/*m初始化為n*/do{b=m%10;m=m/10;sum=sum+b*b*b;}while(m!=0);if(sum==n)printf(“Yes!\n”);elseprintf(“No!\n”);return0;}
3.8舉例(3)2.求1~10000之間所有的“水仙花”數(shù)。【分析】?jī)芍匮h(huán):外循環(huán)n(n=1~10000):已知循環(huán)次數(shù)-for循環(huán)條件:n<=10000循環(huán)體:判斷n是否水仙花數(shù),并打印內(nèi)循環(huán):判斷n是否水仙花數(shù)3.8舉例(4)#include<stdio.h>int
main(void){
intn,m,b,sum;for(n=1;n<=10000;n++){sum=0;m=n;/*m初始化為n*/do{b=m%10;m=m/10;sum=sum+b*b*b;}while(m!=0);if(sum==n)printf(“%d\n”,n);}return0;}
3.8舉例(5)3.求兩個(gè)整數(shù)m和n的最小公倍數(shù)?!痉治觥克悸罚合攘钭钚」稊?shù)lcm=m,然后判斷l(xiāng)cm是否能被n整除,若是,則lcm即最小公倍數(shù);否則,lcm=lcm+m,直到lcm能夠被n整除。顯然用循環(huán):循環(huán)體:lcm=lcm+m;循環(huán)條件:lcm%n!=0循環(huán)選擇:while3.8舉例(6)#include<stdio.h>int
main(void){
intn,m,lcm;
scanf(“%d%d”,&m,&n);lcm=m;while(lcm%n!=0)lcm=lcm+m;
printf(“%d\n”,lcm);return0;}
3.8舉例(7)4.猜價(jià)格游戲:在給定時(shí)間內(nèi)猜出一件商品的價(jià)格(假設(shè)價(jià)格<=1000元,且是整數(shù))。條件:當(dāng)報(bào)出一個(gè)價(jià)格時(shí),系統(tǒng)提示:高了、低了或正確。請(qǐng)編程實(shí)現(xiàn)?!痉治觥孔詈?jiǎn)單的方法:從1開始,每次加1往上報(bào)——太慢!二分法:先把【1,1000】作為一個(gè)區(qū)間,報(bào)中間數(shù),根據(jù)系統(tǒng)提示選擇價(jià)格在哪個(gè)半?yún)^(qū),然后重新設(shè)定新的區(qū)間—每次減少一半可能3.8舉例(8)【分析-續(xù)】二分法原理:設(shè)一個(gè)區(qū)間的左右邊界分別為low和high,假設(shè)價(jià)格為x,取區(qū)間中間值:mid=(low+high)/2;若x<mid,可知:x在左半?yún)^(qū),則調(diào)整新區(qū)間邊界:low不變,high=mid-1,在新區(qū)間繼續(xù)找;若x>mid,可知:x在右半?yún)^(qū),則調(diào)整新區(qū)間邊界:low=mid+1,high不變?cè)谛聟^(qū)間繼續(xù)找;若x==mid,則找到。循環(huán)體:mid取值,判斷mid的高低循環(huán)條件:區(qū)間存在(low<=high),且還沒找到?。⊙h(huán)選擇:while語(yǔ)句3.8舉例(9)#include<stdio.h>int
main(void){
int
low,high,mid,x;
scanf(“%d”,&x);low=1;high=1000;while(low<=high){mid=(low+high)/2;if(x<mid)high=mid-1;/*x在左半?yún)^(qū)*/elseif(x>mid)low=mid+1;/*x在右半?yún)^(qū)*/elsebreak;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023三年級(jí)語(yǔ)文下冊(cè) 第二單元 口語(yǔ)交際:該不該實(shí)行班干部輪流制配套教學(xué)實(shí)錄 新人教版
- 2024工程技術(shù)人員臨時(shí)支援協(xié)議3篇
- 2024版醫(yī)療器械產(chǎn)品設(shè)計(jì)與開發(fā)合同5篇
- 2024年度暑假學(xué)生工派遣與就業(yè)指導(dǎo)培訓(xùn)服務(wù)合同3篇
- 2024年度農(nóng)業(yè)科技項(xiàng)目研發(fā)與合作合同6篇
- 2024年度軟件許可合同中軟件的功能和性能要求3篇
- 2024事業(yè)單位保密協(xié)議書范本與保密信息安全管理3篇
- 臨沂科技職業(yè)學(xué)院《建筑工程造價(jià)實(shí)訓(xùn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年度智能小區(qū)電工勞務(wù)分包合同模板2篇
- 臨沂大學(xué)《計(jì)算軟件》2023-2024學(xué)年第一學(xué)期期末試卷
- 4D廚房設(shè)備設(shè)施管理責(zé)任卡
- GB/T 5593-2015電子元器件結(jié)構(gòu)陶瓷材料
- GB/T 3871.6-1993農(nóng)業(yè)輪式和履帶拖拉機(jī)試驗(yàn)方法第6部分制動(dòng)試驗(yàn)
- GB/T 22844-2009配套床上用品
- GB/T 1962.2-2001注射器、注射針及其他醫(yī)療器械6%(魯爾)圓錐接頭第2部分:鎖定接頭
- GB/T 17646-2013小型風(fēng)力發(fā)電機(jī)組設(shè)計(jì)要求
- 中醫(yī)拔罐技術(shù)試題及答案
- 2023年蘇教版小學(xué)數(shù)學(xué)全套教材內(nèi)容安排表
- 滅火器驗(yàn)收表
- 裝修工程竣工驗(yàn)收?qǐng)?bào)告(7篇)
- 商務(wù)溝通-課件
評(píng)論
0/150
提交評(píng)論