




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
CProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgramCProgram第5章循環(huán)控制用while語句設(shè)計循環(huán)結(jié)構(gòu)程序用do_while設(shè)計循環(huán)結(jié)構(gòu)程序用for語句設(shè)計循環(huán)結(jié)構(gòu)程序本章內(nèi)容復(fù)習(xí)提問1、請從鍵盤輸入五個學(xué)生成績,輸出總成績并統(tǒng)計不及格人數(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個學(xué)生呢?概述一.引入循環(huán)控制語句的作用當(dāng)滿足一定條件時,重復(fù)執(zhí)行一段程序.基本結(jié)構(gòu)之一.二.設(shè)置循環(huán)需要考慮的問題循環(huán)初值,循環(huán)條件的設(shè)置,循環(huán)條件的修改.三.C語言中可用以下語句實現(xiàn)循環(huán)
用goto語句和if語句構(gòu)成循環(huán)------盡量避免使用用while語句用do—while語句用for語句while語句當(dāng)型循環(huán)一般形式:while(表達(dá)式)
循環(huán)體語句執(zhí)行流程:特點:先判斷表達(dá)式,后執(zhí)行循環(huán)體當(dāng)滿足條件時,一直做某事當(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)體若包含一個以上語句,應(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編程計算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);運行結(jié)果:sum=385編程計算50個學(xué)生成績的和并統(tǒng)計不及格人數(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í)行流程:特點:先執(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時結(jié)果為:s=15輸入0時結(jié)果為:s=0輸入5時結(jié)果為:s=15輸入0時結(jié)果為:s=1結(jié)論:當(dāng)while后的表達(dá)式第一次為真時,while語句和do-while語句的結(jié)果相同,否則不同。while語句與do—while語句的比較例:用π/4≈1-1/3+1/5-1/7+……公式求π的近似值,直到最后一項的絕對值小于10-6為止程序舉例分析問題:1、1-1/3+1/5-1/7+……要先求出來2、其中每一項為一個分?jǐn)?shù)且有規(guī)律。3、每一項的分子為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每項(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,……求出這個數(shù)列的前20項之和。練習(xí)思考分析問題:1、每一項為一個分?jǐn)?shù)且有規(guī)律。2、每一項的分子為1、2、3、5、83、每一項的分母為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)條件的修改.實現(xiàn)循環(huán)的方法:用while語句用do—while語句作業(yè)補充1、下面這個程序執(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è)計循環(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);}功能:計算鍵盤輸入數(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è)計者掌握
2、幾點說明:
(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)三個表達(dá)式均可缺省,但起分割作用的兩個分號不可省略。例如: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)體還可為另一個循環(huán)語句例1:輸出Fibonacci數(shù)列的前40項。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)體外(一般指最深層)。缺點:濫用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
存放累加和,初始時sum清零2、用變量i存放加數(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語句程序為:#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)又包含一個循環(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)可包含兩個以上內(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 班級自我管理提升計劃
- 急診安全文化建設(shè)實踐計劃
- 實驗室安全規(guī)范與培訓(xùn)計劃
- 學(xué)校教學(xué)活動安排計劃
- 秘書在團隊溝通中的角色計劃
- 小班三維課程與教育理念實踐計劃
- 2025年美司那項目建議書
- 2025年中國異構(gòu)計算行業(yè)市場運行態(tài)勢及發(fā)展趨勢預(yù)測報告-智研咨詢發(fā)布
- 2025年多通道腦電圖機項目建議書
- 淮安市2024-2025學(xué)年上學(xué)期高一期末考試地理試題(含答案)
- DB32-T 3129-2016適合機械化作業(yè)的單體鋼架塑料大棚 技術(shù)規(guī)范-(高清現(xiàn)行)
- 《花婆婆》兒童繪本故事
- DB44∕T 2149-2018 森林資源規(guī)劃設(shè)計調(diào)查技術(shù)規(guī)程
- 數(shù)據(jù)結(jié)構(gòu)英文教學(xué)課件:chapter10 Hashing
- 藍(lán)色卡通風(fēng)學(xué)生班干部競選介紹PPT模板課件
- 人教新目標(biāo)英語九年級上冊單詞中文Units
- 機動車牌證申請表格模板(完整版)
- 《國家電網(wǎng)公司十八項電網(wǎng)反事故措施(試行)》實施細(xì)則
- 鋼絲網(wǎng)架珍珠巖夾心板安裝方法
- 工藝管廊架施工方案
- 六宮格數(shù)獨解題技巧
評論
0/150
提交評論