![第五章循環(huán)結(jié)構(gòu)_第1頁](http://file4.renrendoc.com/view/5a12f17c846298490e700dbd54c340e2/5a12f17c846298490e700dbd54c340e21.gif)
![第五章循環(huán)結(jié)構(gòu)_第2頁](http://file4.renrendoc.com/view/5a12f17c846298490e700dbd54c340e2/5a12f17c846298490e700dbd54c340e22.gif)
![第五章循環(huán)結(jié)構(gòu)_第3頁](http://file4.renrendoc.com/view/5a12f17c846298490e700dbd54c340e2/5a12f17c846298490e700dbd54c340e23.gif)
![第五章循環(huán)結(jié)構(gòu)_第4頁](http://file4.renrendoc.com/view/5a12f17c846298490e700dbd54c340e2/5a12f17c846298490e700dbd54c340e24.gif)
![第五章循環(huán)結(jié)構(gòu)_第5頁](http://file4.renrendoc.com/view/5a12f17c846298490e700dbd54c340e2/5a12f17c846298490e700dbd54c340e25.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
CProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgram第5章循環(huán)控制用while語句設(shè)計(jì)循環(huán)結(jié)構(gòu)程序用do_while設(shè)計(jì)循環(huán)結(jié)構(gòu)程序用for語句設(shè)計(jì)循環(huán)結(jié)構(gòu)程序本章內(nèi)容復(fù)習(xí)提問1、請從鍵盤輸入五個(gè)學(xué)生成績,輸出總成績并統(tǒng)計(jì)不及格人數(shù).main(){floats1,s2,s3,s4,s5,sum;intcount=0;printf(“input5scores:\n”);
scanf("%f,%f,%f,%f,%f",&s1,&s2,&s3,&s4,&s5);
sum=s1+s2+s3+s4+s5;
if(s1<60)count++;if(s2<60)count++;if(s3<60)count++;if(s4<60)count++;if(s5<60)count++;
printf(“sum=%6.2f,count=%d\n",sum,count);}思考如果要是有50個(gè)學(xué)生呢?概述一.引入循環(huán)控制語句的作用當(dāng)滿足一定條件時(shí),重復(fù)執(zhí)行一段程序.基本結(jié)構(gòu)之一.二.設(shè)置循環(huán)需要考慮的問題循環(huán)初值,循環(huán)條件的設(shè)置,循環(huán)條件的修改.三.C語言中可用以下語句實(shí)現(xiàn)循環(huán)
用goto語句和if語句構(gòu)成循環(huán)------盡量避免使用用while語句用do—while語句用for語句while語句當(dāng)型循環(huán)一般形式:while(表達(dá)式)
循環(huán)體語句執(zhí)行流程:特點(diǎn):先判斷表達(dá)式,后執(zhí)行循環(huán)體當(dāng)滿足條件時(shí),一直做某事當(dāng)表達(dá)式為真循環(huán)體while語句表達(dá)式語句0非0說明:循環(huán)體有可能一次也不執(zhí)行循環(huán)體可為任意類型語句下列情況,退出while循環(huán)條件表達(dá)式不成立(為零)循環(huán)體內(nèi)遇break,return,goto無限循環(huán):while(1)
循環(huán)體語句;while語句注意:
循環(huán)體若包含一個(gè)以上語句,應(yīng)該用花括號括起來(使用復(fù)合語句)。循環(huán)體內(nèi),應(yīng)注意設(shè)置修改循環(huán)條件的語句。否則循環(huán)無法終止。while語句#include<stdio.h>main(){inti,sum=0;
i=1;
while(i<=100)
{
sum=sum+i;
i++;
}
printf("%d",sum);}循環(huán)初值循環(huán)終值循環(huán)變量增值循環(huán)條件循環(huán)體例用while循環(huán)求1+2+3…+100編程計(jì)算1~10的平方和
執(zhí)行過程isum10+1*1=121+2*2=535+3*3=14414+4*4=30530+5*5=55655+6*6=91791+7*7=1408140+8*8=2049204+9*9=285285+10*10=38511文件包含循環(huán)初值主函數(shù)#include<stdio.h>main(){}inti=1,sum=0;while(){}i<=10sum+=i*i;i++;循環(huán)條件循環(huán)變量增值將i的平方累加到sum中練習(xí)思考Printf(“sum=%d”,sum);運(yùn)行結(jié)果:sum=385編程計(jì)算50個(gè)學(xué)生成績的和并統(tǒng)計(jì)不及格人數(shù)思考練習(xí)main(){floatscore,sum=0;inti=1,count=0;while(i<=50){printf(“inputascore:\n”);
scanf("%f",&score);
sum+=score;
if(score<60)count++;
i++;}
printf(“sum=%10.2f,count=%d\n",sum,count);}do~while語句直到型循環(huán)一般形式:do
循環(huán)體語句while(表達(dá)式);執(zhí)行流程:特點(diǎn):先執(zhí)行循環(huán)體,后判斷表達(dá)式一直做某事,直到不滿足條件為止循環(huán)體直到P為假表達(dá)式語句假真do-while語句表達(dá)式循環(huán)體假(0)真(非0)循環(huán)體While循環(huán)說明:至少執(zhí)行一次循環(huán)體do~while可轉(zhuǎn)化成while結(jié)構(gòu)do-while語句例用do~while循環(huán)求#include<stdio.h>main(){inti,sum=0;i=1;
do
{
sum+=i; i++;
}while(i<=100);
printf("%d",sum);}循環(huán)初值循環(huán)終值循環(huán)變量增值循環(huán)條件循環(huán)體do-while語句表達(dá)式循環(huán)體語句假真表達(dá)式循環(huán)體語句假真
先判斷條件,后執(zhí)行語句先執(zhí)行語句,后判斷條件do
循環(huán)體語句while(表達(dá)式);while(表達(dá)式)
循環(huán)體語句while語句與do—while語句的比較例1:求1+2+3+······+n的值,n值通過鍵盤輸入。main(){intn,k=1,s=0;printf(“inputaninteger:\n”);scanf(“%d”,&n);while(k<=n){s=s+k;k++;}printf(“s=%d\n”,s);}main(){intn,k=1,s=0;printf(“inputaninteger:\n”);scanf(“%d”,&n);do{s=s+k;k++;}while(k<=n);printf(“s=%d\n”,s);}輸入5時(shí)結(jié)果為:s=15輸入0時(shí)結(jié)果為:s=0輸入5時(shí)結(jié)果為:s=15輸入0時(shí)結(jié)果為:s=1結(jié)論:當(dāng)while后的表達(dá)式第一次為真時(shí),while語句和do-while語句的結(jié)果相同,否則不同。while語句與do—while語句的比較例:用π/4≈1-1/3+1/5-1/7+……公式求π的近似值,直到最后一項(xiàng)的絕對值小于10-6為止程序舉例分析問題:1、1-1/3+1/5-1/7+……要先求出來2、其中每一項(xiàng)為一個(gè)分?jǐn)?shù)且有規(guī)律。3、每一項(xiàng)的分子為1、-1、1、-14、分母1、3、5、7序號分子(a)分母(b)1112-11+2=3313+2=5………………nanbnn+1-anbn+2遞推公式分子(a):an+1=an且
a1=1分母(b):bn+1=bn+2且b1=1每項(xiàng)(x):x=a/b且x=1和(s):s=s+x且s=0開始a=1,b=1,x=1,s=0|x|>=10-6s=s+xa=-ab=b+2x=a/b非00s=s*4輸出s結(jié)束#include<stdio.h>#include<math.h>main(){floata,b,x,s;a=1;b=1;x=1;s=0;while(fab(x)>=1e-6)
{
s+=x; a=-a;b=b+2;x=a/b;
}s*=4; printf(“pi=%10.6f\n",s);}有一分?jǐn)?shù)序列1/2,2/3,3/5,5/8,8/13,……求出這個(gè)數(shù)列的前20項(xiàng)之和。練習(xí)思考分析問題:1、每一項(xiàng)為一個(gè)分?jǐn)?shù)且有規(guī)律。2、每一項(xiàng)的分子為1、2、3、5、83、每一項(xiàng)的分母為2、3、5、8、序號分子(a)分母(b)112221+2=3332+3=5453+5=8………………nanbnn+1bnan+bn
遞推公式#include<stdio.h>#include<math.h>main(){floata,b,x,s,t;inti=1;a=1;b=2;x=0.5;s=0;while(i<=20)
{
s+=x; a=b;b=a+b;x=a/b;i++;
}printf(“s=%10.6f\n",s);}t=a;a=b;b=t+b;小結(jié)引入循環(huán)控制語句的作用設(shè)置循環(huán)需要考慮的問題
循環(huán)初值循環(huán)條件的設(shè)置循環(huán)條件的修改.實(shí)現(xiàn)循環(huán)的方法:用while語句用do—while語句作業(yè)補(bǔ)充1、下面這個(gè)程序執(zhí)行后i和s的值為多少?(單選)#include<stdio.h>voidmain(){inti,s;i=0;s=0;while(i<10);{s+=(i++);printf("%d\n",s);}printf("i=%d\n",i);}A.i值為9,s值為45B.i值為10,s值為45C.i值為10,s值為36D.程序陷入了死循環(huán)2.請分析下面程序?qū)崿F(xiàn)功能#include<stdio.h>main(){ intnumber,sum=0; scanf("%d",&number);
while(number)
{
sum+=number; scanf("%d",&number);
} printf("sum=%d\n",sum);}while(number!=0)作業(yè)本講內(nèi)容:第5章循環(huán)控制(二)for語句的格式及控制原理用for語句設(shè)計(jì)循環(huán)結(jié)構(gòu)程序循環(huán)的嵌套break語句和continue語句復(fù)習(xí)提問1.請分析下面程序?qū)崿F(xiàn)功能#include<stdio.h>main(){ intnumber,sum=0; scanf("%d",&number);
while(number!=0)
{
sum+=number; scanf("%d",&number);
} printf("sum=%d\n",sum);}功能:計(jì)算鍵盤輸入數(shù)據(jù)和,直到輸入0為止for語句一、for語句的一般格式:for(表達(dá)式1;表達(dá)式2;表達(dá)式3)語句二、for循環(huán)的控制原理1、執(zhí)行過程:表達(dá)式2表達(dá)式1語句表達(dá)式3假真注意:表達(dá)式1只執(zhí)行一次先判斷后執(zhí)行表達(dá)式3相當(dāng)于循環(huán)語句的延伸。它們之間的區(qū)別可由程序設(shè)計(jì)者掌握
2、幾點(diǎn)說明:
(1)for語句最簡單的應(yīng)用形式:
for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量值調(diào)整)
語句for語句例1:用for語句求:main(){inti,sum=0;
for(i=1;i<=100;i++)sum+=i;printf("%d",sum);}main(){inti=1,sum=0;while(i<=100){sum+=i;i++;}printf("%d",sum);}用while語句:for語句用for循環(huán)語句:(2)三個(gè)表達(dá)式均可缺省,但起分割作用的兩個(gè)分號不可省略。例如:for(;;)
表達(dá)式1省略:
應(yīng)在for之前對循環(huán)變量賦初值。表達(dá)式2省略:
則不判斷條件,循環(huán)無終止進(jìn)行下去。表達(dá)式3省略:
則應(yīng)另設(shè)法保證循環(huán)的結(jié)束。
for語句main(){inti,sum=0;
for(i=1;i<=100;i++)sum+=i;printf("%d",sum);}main(){inti=1,sum=0;while(i<=100){sum+=i;i++;}printf("%d",sum);}用while語句:for語句用for語句:main(){inti,sum=0;
i=1;for(;i<=100;i++)sum+=i;printf("%d",sum);}main(){inti=1,sum=0;while(i<=100){sum+=i;i++;}printf("%d",sum);}用while語句:for語句用for語句:main(){inti,sum=0;
i=1;for(;;i++){if(i>100)break;sum+=i;}printf("%d",sum);}main(){inti=1,sum=0;while(i<=100){sum+=i;i++;}printf("%d",sum);}用while語句:for語句用for語句:main(){inti=1,sum=0;while(i<=100){sum+=i;i++;}printf("%d",sum);}用while語句:for語句用for語句:main(){inti,sum=0;
i=1;for(;i<=100;){sum+=i;
i++;}printf("%d",sum);}(3)表達(dá)式1和表達(dá)式3可為逗號表達(dá)式
for語句例2:main(){inti,j,sum=0;for(i=1,j=10;i<=j;i++,j--)sum+=i+j;printf(“%d”,sum);}(4)for語句的循環(huán)體還可為另一個(gè)循環(huán)語句例1:輸出Fibonacci數(shù)列的前40項(xiàng)。11235813……for語句三、for語句的應(yīng)用示例f1=1,f2=1fori=1to20輸出f1和f2f1=f1+f2f2=f1+f2算法流程圖:問題分析:f1=1(n=1)f2=1(n=2)fn=fn-1+fn-2(n>=3)main(){longintf1,f2
;inti;f1=1;f2=1;for(i=1;i<=20;i++){printf(“%12ld%12ld”,f1,f2
);f1=f1+f2;f2=f1+f2;if(i%2==0)printf(“\n”);}}goto語句說明:標(biāo)號用標(biāo)識符表示,即由字母、數(shù)字和下劃線組成,且首字符必須為字母或下劃線。不能用整數(shù)來作標(biāo)號用途:1.與if語句一起構(gòu)成循環(huán)結(jié)構(gòu)。2.從循環(huán)體中跳到循環(huán)體外(一般指最深層)。缺點(diǎn):濫用goto語句,可使程序無規(guī)律、可讀性差。goto
語句標(biāo)號;………….標(biāo)號:語句;合法標(biāo)識符一般形式:例用if和goto語句構(gòu)成循環(huán),求1+2+3+……+100sum=0+1sum=1+2=3sum=3+3=6sum=6+4……sum=4950+100=5050問題分析:1、用變量sum
存放累加和,初始時(shí)sum清零2、用變量i存放加數(shù),初始時(shí)i=13、判斷i是否大于100,若是轉(zhuǎn)6;否則轉(zhuǎn)44、累加sum=sum+i5、i值加1,i=i+1,轉(zhuǎn)36、輸出sum值流程圖:開始0->sum,1->ii<=100輸出sum結(jié)束i=i+1sum=sum+i是否goto語句程序?yàn)椋?include<stdio.h>main(){inti,sum=0;
i=1;loop:
if(i<=100)
{sum+=i; i++;
gotoloop;
}printf("%d",sum);}循環(huán)初值循環(huán)終值循環(huán)變量增值循環(huán)條件循環(huán)體goto語句一、定義
在循環(huán)體內(nèi)又包含一個(gè)循環(huán)結(jié)構(gòu),稱為循環(huán)嵌套。for(;;){···
for(;;){···}}循環(huán)的嵌套如下所示為for循環(huán)體嵌套for循環(huán)的形式:for(i=1;i<=2;i++){for(j=1;j<=2;j++)printf(“%5d”,i+j);}循環(huán)的嵌套例1:分析下列程序段的結(jié)果output:2334分析:iji+j12231324二、程序舉例循環(huán)的嵌套例2:打印輸出下列圖案□□□□*□□□***□□*****□*******行號空格數(shù)*號數(shù)141233325417i5-i2*i-1
main(){inti,j,k;
for(i=1;i<=4;i++){for(j=1;j<=5-i;j++)printf(“□”);for(k=1;k<=2*i-1;k++)printf(“*”);
printf(“\n”);}}程序如下:主函數(shù)控制行循環(huán)循環(huán)變量定義每行中的空格每行中的*號換行練習(xí)打印輸出下列圖案□□□□□*□□□□**□□□***□□****□*****思考行號空格數(shù)j*號數(shù)k151242333424515i6-iimain(){}主函數(shù)inti,j,k;控制行循環(huán)
for(i=1;i<=5;i++){}循環(huán)變量定義for(j=1;j<=6-i;j++)printf(“□”);每行中的空格printf(“\n”);每行中的*號for(k=1;k<=i;k++)printf(“*”);換行練習(xí)常見的幾種循環(huán)嵌套形式:for(;;){···
while(){···}}for循環(huán)體嵌套while循環(huán)for(;;){···
for(;;){···}}for循環(huán)體嵌套for循環(huán)循環(huán)的嵌套do{
do{···}while();}while();do_while循環(huán)體嵌套do_while循環(huán)while(){
do{···}while();
}while循環(huán)體嵌套do_while循環(huán)for(;;)
{
do{···}while()}for循環(huán)體嵌套do-while循環(huán)
do{
for(;;){···}}while();
do_while循環(huán)體嵌套for循環(huán)三種循環(huán)可互相嵌套,層數(shù)不限外層循環(huán)可包含兩個(gè)以上內(nèi)循環(huán),但不能相互交叉嵌套循環(huán)的跳轉(zhuǎn)CBACBAAB嵌套循環(huán)的執(zhí)行流程CBA逐層跳出(break)CBA一次跳出(return,goto)循環(huán)的嵌套幾種循環(huán)的比較三種循環(huán)語句的選用:1.若循環(huán)次數(shù)在執(zhí)行循環(huán)體之前已確定,一般用for若循環(huán)次數(shù)根據(jù)循環(huán)體執(zhí)行情況確定,一般用while或do~while2.當(dāng)循環(huán)體至少執(zhí)行一次,用do~while若循環(huán)體有可能一次也不執(zhí)行,用while
break語句
功能:跳出循環(huán)體或開關(guān)體(switch語句)
說明:break只能跳出最近一層的結(jié)構(gòu)break語句和continue語句例:小寫字母轉(zhuǎn)換成大寫字母,直至輸入非字母字符#include<stdio.h>main(){charc;}
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年眉山貨運(yùn)資格證模擬考試新題庫
- 電梯加件協(xié)議書(2篇)
- 電力需求預(yù)測合同(2篇)
- 2024-2025學(xué)年四年級語文上冊第五單元橋12橋之思備課教案北師大版
- 湘教版數(shù)學(xué)七年級下冊2.2.2《運(yùn)用完全平方公式進(jìn)行計(jì)算》聽評課記錄
- 律師事務(wù)所年度檢查考核總結(jié)
- 第三季度財(cái)務(wù)工作總結(jié)
- 采購計(jì)劃年終工作總結(jié)
- 聽評課記錄二年級語文
- 領(lǐng)導(dǎo)給員工的評語與希望
- 2025年度化妝品電商平臺流量互換銷售合作合同
- 學(xué)習(xí)解讀2025年印發(fā)《教育強(qiáng)國建設(shè)規(guī)劃綱要(2024-2035年)》課件
- 全過程造價(jià)咨詢服務(wù)的質(zhì)量、進(jìn)度、保密等保證措施
- 縣城屠宰場建設(shè)可行性研究報(bào)告
- 25學(xué)年六年級數(shù)學(xué)寒假作業(yè)《每日一練》
- 2025高考數(shù)學(xué)一輪復(fù)習(xí)-第8章-第3節(jié) 圓的方程【課件】
- 人文關(guān)懷在護(hù)理工作中的體現(xiàn)
- 2025年1月八省聯(lián)考高考綜合改革適應(yīng)性測試-高三生物(陜西、山西、寧夏、青海卷) 含解析
- 環(huán)保行業(yè)深度研究報(bào)告
- 保障性住房補(bǔ)貼委托書范本
- 社會主義核心價(jià)值觀課件
評論
0/150
提交評論