6.第六章 循環(huán)控制
《6.第六章 循環(huán)控制》由會員分享,可在線閱讀,更多相關(guān)《6.第六章 循環(huán)控制(38頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、實驗實驗2-22-2:將輸入的百分之的分數(shù),按下列分數(shù)段:將輸入的百分之的分數(shù),按下列分數(shù)段輸出等級輸出等級(要求要求:使用使用switch)switch)main()main()intint score;score;scanf(%d,&scorescanf(%d,&score););score=score/10;score=score/10;/*1*/*1*/switch(score)switch(score)case 10:printf(The grade is A);break;case 10:printf(The grade is A);break;case 9:printf(The
2、grade is A);break;case 9:printf(The grade is A);break;/*2*/*2*/case 8:printf(The grade is B);break;case 8:printf(The grade is B);break;case 7:printf(The grade is C);break;case 7:printf(The grade is C);break;case 6:printf(The grade is D);break;case 6:printf(The grade is D);break;default:printf(Thedef
3、ault:printf(The grade is E);grade is E);/*3*/*3*/實驗實驗2-32-3:從鍵盤輸入三個數(shù):從鍵盤輸入三個數(shù),分別代表三條線斷的分別代表三條線斷的長度長度.編程實現(xiàn)判斷是否能組成三角形編程實現(xiàn)判斷是否能組成三角形,及類型及類型.輸入輸入a,b,c的值的值 a+bc&b+ca&c+aba+bc&b+ca&c+ab是是 否否打印打印“能組成三角形能組成三角形”打印打印“不不能組成三能組成三角形角形”是是 a=b&b=c a=b&b=c 否否打印打印“是等邊是等邊三角形三角形”a*a+b*b=c*c|a*a+b*b=c*c|a*a+c*c=b*b|.a*
4、a+c*c=b*b|.是是 否否打印打印“是直角是直角三角形三角形”打印打印“是一般三是一般三角形角形”main()main()intint a,b,c;a,b,c;scanf(%d,%d,%d,&a,&b,&cscanf(%d,%d,%d,&a,&b,&c););if(a+bc&b+ca&c+ab)if(a+bc&b+ca&c+ab)printf(“Canprintf(“Can get a triangle.n);get a triangle.n);if(a=b&b=c)if(a=b&b=c)printf(“Itprintf(“It is a equal-triangle.n);is a e
5、qual-triangle.n);else else if(a*a+b*b=c*c|a*a+c*c=b*b|b*b+c*c=a*a)if(a*a+b*b=c*c|a*a+c*c=b*b|b*b+c*c=a*a)printf(“Itprintf(“It is a right-angle triangle.n);is a right-angle triangle.n);else else printf(“Itprintf(“It is a ordinary triangle.n);is a ordinary triangle.n);elseelse printf(“Sorry!Cannotprin
6、tf(“Sorry!Cannot get a triangle.n);get a triangle.n);main()main()intint a,b,c;a,b,c;scanf(%d,%d,%d,&a,&b,&cscanf(%d,%d,%d,&a,&b,&c););if(a+bc&b+ca&c+ab)if(a+bc&b+ca&c+ab)printf(“Canprintf(“Can get a triangle.n);get a triangle.n);if(a=b&b=c)if(a=b&b=c)printf(“Itprintf(“It is a equal-triangle.n);is a
7、equal-triangle.n);else else if(a*a+b*b=c*c|a*a+c*c=b*b|b*b+c*c=a*a)if(a*a+b*b=c*c|a*a+c*c=b*b|b*b+c*c=a*a)printf(“Itprintf(“It is a right-angle triangle.n);is a right-angle triangle.n);else else printf(“Itprintf(“It is a ordinary triangle.n);is a ordinary triangle.n);else else printf(“Sorry!Cannotpr
8、intf(“Sorry!Cannot get a triangle.n);get a triangle.n);第六章第六章 循環(huán)控制循環(huán)控制 循環(huán)結(jié)構(gòu)有兩種形式:循環(huán)結(jié)構(gòu)有兩種形式:當型循環(huán)和直到型循環(huán)當型循環(huán)和直到型循環(huán)當型循環(huán)和直到型循環(huán)當型循環(huán)和直到型循環(huán)。下面分別是下面分別是當型循環(huán)結(jié)構(gòu)當型循環(huán)結(jié)構(gòu)當型循環(huán)結(jié)構(gòu)當型循環(huán)結(jié)構(gòu)的傳統(tǒng)流程圖和的傳統(tǒng)流程圖和N-S流程圖表示。流程圖表示。直到型循環(huán)結(jié)構(gòu)直到型循環(huán)結(jié)構(gòu)直到型循環(huán)結(jié)構(gòu)直到型循環(huán)結(jié)構(gòu)的傳統(tǒng)流程圖和的傳統(tǒng)流程圖和N-S流程圖表示流程圖表示:v goto語句構(gòu)成循環(huán)語句構(gòu)成循環(huán)v while語句語句v do-while 語句語句v for
9、 語句語句在在C語言中以下語句可以用來實現(xiàn)循環(huán)結(jié)構(gòu):語言中以下語句可以用來實現(xiàn)循環(huán)結(jié)構(gòu):v goto語句構(gòu)成循環(huán)語句構(gòu)成循環(huán)一般形式:一般形式:gotogoto 語句標號;語句標號;例例6.1:6.1:求求1+2+3+4+1001+2+3+4+100main()main()intint i=1,sum=0;i=1,sum=0;loop:if(i=100)loop:if(i=100)sum=sum+i;sum=sum+i;i+;i+;gotogoto loop;loop;printf(“%d”,sumprintf(“%d”,sum););v while語句語句一般形式:一般形式:while(表達
10、式表達式)語句語句例例6.2:6.2:求求1+2+3+4+1001+2+3+4+100main()main()intint i=1,sum=0;i=1,sum=0;while(i=100)while(i=100)sum=sum+i;sum=sum+i;i+;i+;printf(“%d”,sumprintf(“%d”,sum););開始開始sum=0i=1i=100NYsum=sum+ii=i+1結(jié)束結(jié)束v do-while 語句語句一般形式:一般形式:do 循環(huán)體語句循環(huán)體語句 while(表達式表達式);例例6.3:6.3:求求1+2+3+4+1001+2+3+4+100main()main
11、()intint i=1,sum=0;i=1,sum=0;do do sum=sum+i;sum=sum+i;i+;i+;while(i=100);while(i=100);printf(“%d”,sumprintf(“%d”,sum););開始開始Sum=0i=1i100 N-S 流程圖流程圖v for 語句語句一般形式:一般形式:for(表達式表達式1;表達式表達式2;表達式表達式3)循環(huán)體循環(huán)體例例6.4:6.4:求求1+2+3+4+1001+2+3+4+100main()main()intint i,sum=0;i,sum=0;for(i=1;i=100;i+)for(i=1;i=10
12、0;i+)sum=sum+i;sum=sum+i;printf(“%d”,sumprintf(“%d”,sum););開始開始Sum=0i=100NYsum=sum+i結(jié)束結(jié)束i+i=1 N-S 流程圖流程圖Sum=0sum=sum+ii+i=100i=1v 幾種循環(huán)語句的比較幾種循環(huán)語句的比較While,for循環(huán)循環(huán):是先判斷表達式,后執(zhí)行語是先判斷表達式,后執(zhí)行語句;句;do-while循環(huán)循環(huán):是先執(zhí)行語句,后判斷表達是先執(zhí)行語句,后判斷表達式。式。2.for循環(huán)和循環(huán)和while循環(huán)可以互相代替。循環(huán)可以互相代替。而而for語句的功能更強,用法更靈活。語句的功能更強,用法更靈活。3.
13、while和和do-while語句只有當表達式的第一語句只有當表達式的第一次的值為真時才可以互相代替次的值為真時才可以互相代替習題習題1:1:求求1+2+31+2+3+20+20開始開始Sum=0i=20NYsum=sum+i結(jié)束結(jié)束i+i=1main()int i,sum=0;for(i=1;i=20;i+)sum=sum+i;printf(“%d”,sum);習題習題2:2:求求1*2*3*51*2*3*5main()int i,sum=1;for(i=1;i=5;i+)sum=sum*i;printf(“%d”,sum);開始開始Sum=1i=5NYsum=sum*i結(jié)束結(jié)束i+i=1習
14、題習題3:3:求求1*2*3*201*2*3*20main()main()intint i;i;float sum=1;float sum=1;for(i=1;i=20;i+)for(i=1;i=20;i+)sum=sum=sumsum*i;*i;printf(printf(“%f%f”,sum,sum););開始開始Sum=1i=20NYsum=sum*i結(jié)束結(jié)束i+i=1習題習題4:4:求求1*2*n1*2*n,即,即n!n!main()int i,n;float sum=1;scanf(“%d”,&n)for(i=1;i=n;i+)sum=sum*i;printf(“%f”,sum);開
15、始開始Sum=1i=5NYsum=sum*i結(jié)束結(jié)束i+i=1習題習題2:2:求求1+2+n1+2+nmain()int i,n,sum=0;scanf(“%d”,&n)for(i=1;i=n;i+)sum=sum+i;printf(“%d”,sum);開始開始Sum=1i=5NYsum=sum*i結(jié)束結(jié)束i+i=1思考思考:1:1、求、求 1+3+5+7 1+3+5+7 前前1010項項 2 2、求、求 3 3、求、求 2/1+3/2+5/3+8/52/1+3/2+5/3+8/5前前1010項項核心思想核心思想:for(;)for(;)s=?s=?sum=sum=sumsum+s;+s;1
16、1、確定循環(huán)次數(shù);、確定循環(huán)次數(shù);2 2、構(gòu)造、構(gòu)造s s項,達到目的。項,達到目的。習題習題5:5:求求1!+2!+n!1!+2!+n!main()int i,n;float s=1,sum=0;scanf(“%d”,&n)for(i=1;i=n;i+)s=s*i;sum=sum+s;printf(“%f”,sum);提示:提示:讓變量讓變量s依次為:依次為:1!,2!,3!用用Sum對對s進行累加進行累加v 循環(huán)的嵌套循環(huán)的嵌套main()main()intint i,ji,j;for(i=1;i=3;i+)for(i=1;i=3;i+)for(j=1;j=5;j+)for(j=1;j=5
17、;j+)printfprintf(“*”);(“*”);printf(nprintf(n););例例 6.4 6.4 輸出圖形輸出圖形請思索此條請思索此條請思索此條請思索此條語句的作用語句的作用語句的作用語句的作用*main()main()intint i,ji,j;for(i=1;i=5;i+)for(i=1;i=5;i+)for(j=1;j=for(j=1;j=i;ji;j+)+)printfprintf(“*”);(“*”);printf(nprintf(n););思考:思考:輸出圖形輸出圖形 呢?呢?*main()main()intint i,ji,j;for(i=1;i=5;i+)f
18、or(i=1;i=5;i+)for(j=1;j=5;j+)for(j=1;j=5;j+)printfprintf(“*”);(“*”);printf(nprintf(n););思考:思考:輸出圖形輸出圖形*main()main()intint i,ji,j;for(i=1;i=9;i+)for(i=1;i=9;i+)for(j=1;j=for(j=1;j=i;ji;j+)+)printf(“%dprintf(“%d*%d=%*%d=%d”,i,j,id”,i,j,i*j);*j);printf(nprintf(n););這種方案打印出來的九這種方案打印出來的九這種方案打印出來的九這種方案打印出
19、來的九九表是正三角九表是正三角九表是正三角九表是正三角,請思索請思索請思索請思索如何對程序修改如何對程序修改如何對程序修改如何對程序修改,以實以實以實以實現(xiàn)打印出倒三角現(xiàn)打印出倒三角現(xiàn)打印出倒三角現(xiàn)打印出倒三角!大家可以試著在紙上分大家可以試著在紙上分大家可以試著在紙上分大家可以試著在紙上分析出這一過程析出這一過程析出這一過程析出這一過程.例例 6.5 6.5 打印九九乘法表打印九九乘法表題題1.有以下程序有以下程序main()int s=0,a=1,n;scanf(%d,&n);do s+=1;a=a-2;while(a!=n);printf(“%dn”,s);若要使程序的輸出值為若要使程序
20、的輸出值為2,則應(yīng)該從鍵盤給,則應(yīng)該從鍵盤給n輸入輸入的值是的值是 A)-1 B)-3 C)-5 D)0B)題題2.執(zhí)行以下程序后,輸出執(zhí)行以下程序后,輸出#號的個數(shù)號的個數(shù)是是 。#include“stdio.h”main()int i,j;for(i=1;i5;i+)for(j=2;j=i;j+)putchar(#);6v break和和continue語句語句break:跳出當前的跳出當前的switch語句或循環(huán)語句或循環(huán)continue:結(jié)束本次循環(huán),循環(huán)繼續(xù)結(jié)束本次循環(huán),循環(huán)繼續(xù)例例6.6:6.6:閱讀程序,說出本程序段的作用閱讀程序,說出本程序段的作用main()main()int
21、int n;n;for(n=1;n=100;n+)for(n=1;n=100;n+)if(n%5!=0)if(n%5!=0)continue;continue;printf(“%d”,nprintf(“%d”,n););作用:求出作用:求出1-100之間所有能被之間所有能被5整除的數(shù)整除的數(shù)思考:如果思考:如果continue用用break替換呢替換呢?習題習題6 6:判斷一個輸入的值:判斷一個輸入的值m m是否為素數(shù)(方法一)是否為素數(shù)(方法一)讀入讀入m的值的值k=sqrt(m)i=2當當ik否否是是輸出:輸出:m是素數(shù)是素數(shù)輸出:輸出:m不是素數(shù)不是素數(shù)#include#include#
22、include#include main()main()intint m,i,km,i,k;scanf(%d,&mscanf(%d,&m););k=k=sqrt(msqrt(m););for(i=2;i=for(i=2;ik)if(ik)printf(printf(“%d%d is a prime is a prime numbernumber”,m,m););else else printf(printf(“%d%d is not a prime is not a prime”,m);,m);源程序源程序1 1:循環(huán)變量終值法循環(huán)變量終值法循環(huán)變量終值法循環(huán)變量終值法方法二:方法二:讀入讀入
23、m的值的值k等等于于m的平方根的平方根i=2;ip=0;當當i=k時循環(huán)時循環(huán)i能整除能整除m?是是否否 ip=1;用用break結(jié)束循環(huán)結(jié)束循環(huán)i+ip=0?否否是是輸出:輸出:m是素數(shù)是素數(shù)輸出:輸出:m不是素數(shù)不是素數(shù)#include#include#include#include main()main()intint m,i,k,ip=0;m,i,k,ip=0;scanf(%d,&mscanf(%d,&m););k=k=sqrt(msqrt(m););for(i=2;i=for(i=2;i=k;ik;i+)+)if(m%i=0)ip=1;break;if(m%i=0)ip=1;brea
24、k;if(ip=0)if(ip=0)printf(printf(“%d%d is a prime is a prime numbernumber”,m,m););else else printf(printf(“%d%d is not a prime is not a prime”,m);,m);源程序源程序1 1:變量標示法變量標示法變量標示法變量標示法v 幾種循環(huán)語句的比較幾種循環(huán)語句的比較1.While,for循環(huán):do-while循環(huán):開始開始設(shè)初值設(shè)初值循環(huán)條件循環(huán)條件NY循環(huán)體循環(huán)體結(jié)束結(jié)束開始開始設(shè)初值設(shè)初值循環(huán)條件循環(huán)條件NY循環(huán)體循環(huán)體結(jié)束結(jié)束是先判斷表達式,后執(zhí)行語句;是先判斷表達式,后執(zhí)行語句;是先執(zhí)行語句,后判斷表達式是先執(zhí)行語句,后判斷表達式2.for循環(huán)和while循環(huán)可以互相代替。而for語句的功能更強,用法更靈活。開始開始設(shè)初值設(shè)初值循環(huán)條件循環(huán)條件NY循環(huán)體循環(huán)體結(jié)束結(jié)束While循環(huán):開始開始表達式表達式1表達式表達式2NY循環(huán)體循環(huán)體結(jié)束結(jié)束表達式表達式3for循環(huán):設(shè)初值設(shè)初值
- 溫馨提示:
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)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025《增值稅法》高質(zhì)量發(fā)展的增值稅制度規(guī)范增值稅的征收和繳納
- 深入學習《中華人民共和國科學技術(shù)普及法》推進實現(xiàn)高水平科技自立自強推動經(jīng)濟發(fā)展和社會進步
- 激揚正氣淬煉本色踐行使命廉潔從政黨課
- 加強廉潔文化建設(shè)夯實廉政思想根基培育風清氣正的政治生態(tài)
- 深入學習2024《突發(fā)事件應(yīng)對法》全文提高突發(fā)事件預(yù)防和應(yīng)對能力規(guī)范突發(fā)事件應(yīng)對活動保護人民生命財產(chǎn)安全
- 2023年四年級數(shù)學上冊第一輪單元滾動復(fù)習第10天平行四邊形和梯形作業(yè)課件新人教版
- 2023年四年級數(shù)學上冊第14單元階段性綜合復(fù)習作業(yè)課件新人教版
- 2023年四年級數(shù)學上冊易錯清單十五課件新人教版
- 2023年四年級數(shù)學上冊易錯清單七課件西師大版
- 2023年五年級數(shù)學下冊易錯清單六作業(yè)課件北師大版
- 2023年五年級數(shù)學下冊易錯清單二作業(yè)課件北師大版
- 2023年五年級數(shù)學下冊四分數(shù)的意義和性質(zhì)第10課時異分母分數(shù)的大小比較作業(yè)課件蘇教版
- 2023年五年級數(shù)學下冊周周練四作業(yè)課件北師大版
- 2023年五年級數(shù)學下冊六折線統(tǒng)計圖單元復(fù)習卡作業(yè)課件西師大版
- 2023年四年級數(shù)學上冊6除數(shù)是兩位數(shù)的除法單元易錯集錦一作業(yè)課件新人教版