《C語(yǔ)言程序設(shè)計(jì)》06 循環(huán)跳出和循環(huán)嵌套寫字字帖_第1頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》06 循環(huán)跳出和循環(huán)嵌套寫字字帖_第2頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》06 循環(huán)跳出和循環(huán)嵌套寫字字帖_第3頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》06 循環(huán)跳出和循環(huán)嵌套寫字字帖_第4頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》06 循環(huán)跳出和循環(huán)嵌套寫字字帖_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第六章循環(huán)跳出和循環(huán)嵌套12回顧while循環(huán)do-while循環(huán)while和do-while循環(huán)的區(qū)別For循環(huán)3目標(biāo)理解break和continue熟練使用嵌套循環(huán)4break語(yǔ)句(一)break語(yǔ)句兩種用途:1.終止switch語(yǔ)句中的case語(yǔ)句,保證多路分支情況的正確執(zhí)行2.強(qiáng)迫程序退出一個(gè)循環(huán),跳過(guò)正常的循環(huán)條件測(cè)試5break語(yǔ)句(二)break語(yǔ)句通常在循環(huán)中與條件語(yǔ)句一起使用。若條件值為真,將跳出循環(huán),控制流轉(zhuǎn)向循環(huán)后面的語(yǔ)句在多層循環(huán)中,一個(gè)break語(yǔ)句只向外跳一層6跳出

for循環(huán)inti;for(i=0;i<100;i++;){if(i==10)//當(dāng)i等于10時(shí)退出整個(gè)循環(huán)

break;printf("

%4d",i);}printf("

\n",i);}break示例7跳出

while循環(huán)while(1){if(x==10)

break;}跳出

for循環(huán)for(;;){printf("這將一直進(jìn)行下去");i=getchar();if(i=='X'||i=='x')

break;}break語(yǔ)句(三)跳出

do-while循環(huán)do{if(x==10)

break;}while(x<15);8continue語(yǔ)句(一)continue

語(yǔ)句的作用是跳過(guò)循環(huán)體中剩余的語(yǔ)句而執(zhí)行下一次循環(huán)9跳出

for循環(huán)inti;for(i=0;i<100;i++;){if(i==10)//當(dāng)i等于10時(shí)退出本次循環(huán)

continue;printf("%4d",i);}printf("\n",i);}

Continue示例10break與continue的區(qū)別while(…){

…………

break;

…………}跳出整個(gè)循環(huán)while(…){

…………continue;

…………}繼續(xù)下一次循環(huán)11循環(huán)嵌套在一個(gè)循環(huán)體內(nèi)又包含了一個(gè)完整的循環(huán)結(jié)構(gòu)時(shí),稱為循環(huán)語(yǔ)句的嵌套。只有在內(nèi)循環(huán)完全結(jié)束后,外循環(huán)才會(huì)進(jìn)行下一趟。嵌套循環(huán)的語(yǔ)法while(i<=10){...while(i<=j){......}...}外循環(huán)內(nèi)循環(huán)12循環(huán)嵌套示例(一)

在屏幕打印由星號(hào)構(gòu)成的5行10列的矩形圖形13

在屏幕打印由星號(hào)構(gòu)成的5行10列的矩形圖形#include<stdio.h>voidmain(){inti,j;for(i=0;i<5;i++) //打印5行

{ for(j=0;j<10;j++) //每行打印10個(gè)星號(hào)

{ printf("*"); } printf("\n");//打印完一行星號(hào)后輸出一個(gè)換行符

}}循環(huán)嵌套示

例(一)14循環(huán)嵌套示例(二)

打印九九乘法表。15#include<stdio.h>voidmain(){ printf("\t\t\t\t九九乘法表\n"); printf("\t\t\t------------------------\n"); for(inti=1;i<=9;i++)//輸出行

{ for(intj=1;j<=9;j++)//輸出每行的列數(shù)

{ printf("%d*%d=%2d\t",i,j,i*j); } printf("\n"); }}16注意內(nèi)循環(huán)控制變量,不能與外循環(huán)控制變量同名外循環(huán)必須完全包含內(nèi)循環(huán),不能有交叉循環(huán)for循環(huán)既可以嵌套for循環(huán),也可以嵌套while或者do-while循環(huán),實(shí)際應(yīng)用中三種循環(huán)可以互相嵌套。在多層循環(huán)中,一個(gè)break語(yǔ)句只向外跳一層。17程序舉例(一)百錢買百雞問(wèn)題。假設(shè)小雞每只5角,公雞每只2元,母雞每只3元?,F(xiàn)在有100元錢要求買100只雞,請(qǐng)編程列出所有可能的購(gòu)雞方案。設(shè)母雞、公雞和小雞各為x、y、z只,根據(jù)題目要求,可以列出方程為方程有3個(gè)未知量,故有無(wú)窮多解。,在計(jì)算機(jī)中可以使用“窮舉法”(也稱枚舉法)來(lái)求解。即,將可能出現(xiàn)的各種情況一一測(cè)試,判斷是否滿足條件。18程序舉例(二)#include<stdio.h>voidmain(){

printf("\t\t購(gòu)買方案\n");

printf("\t------------------------\n");

printf("\t母雞\t公雞\t小雞\n");

int

x,y,z,sum=0;for(x=1;x<=100;x++){for(y=1;y<=100;y++){ for(z=1;z<=100;z++){if(((x+y+z)==100)&&((3*x+2*y+0.5*z)==100))

printf("\t%d\t%d\t%d\n",x,y,z);sum++;}}}

printf("\n方法一,程序總共運(yùn)行了:%d\n",sum);}

程序舉例(二)在多重循環(huán)中為了提高運(yùn)行速度,對(duì)程序要考慮優(yōu)化問(wèn)題。對(duì)于多重循環(huán),可以提高速度的優(yōu)化選項(xiàng)中需要考慮的因素如下:盡量利用已給出的條件,減少循環(huán)的次數(shù)。合理的選擇內(nèi)、外層的循環(huán)次數(shù),即將循環(huán)次數(shù)多的放在內(nèi)循環(huán)中。根據(jù)三種雞的只數(shù)為100的關(guān)系,用二重循環(huán)實(shí)現(xiàn);同時(shí)每種雞循環(huán)次數(shù)不必到100,因?yàn)檫€要滿足總價(jià)格為100元的關(guān)系。因此,假如100元買母雞最多能買100/3=33只,而如果用100元全部買公雞,則最多可買50只。1920程序舉例(三)#include<stdio.h>voidmain(){

printf("\t\t購(gòu)買方案\n");

printf("\t------------------------\n");

printf("\t母雞\t公雞\t小雞\n");

int

x,y,z,sum=0;for(x=1;x<=33;x++){for(y=1;y<=55;y++){z=100-x-y;

if((3*x+2*y+0.5*z)==100)printf("\t%d\t%d\t%d\n",x,y,z);

sum++;}}

printf(“\n方法一,程序總共運(yùn)行了d\n",sum);}

21程序舉例(四)

從鍵盤輸入一串字符,以ctrl+z(^z)表示輸入結(jié)束。統(tǒng)計(jì)其中包含的單詞個(gè)數(shù)、字母?jìng)€(gè)數(shù)、數(shù)字個(gè)數(shù)。規(guī)定單詞之間用一個(gè)空白符分開(這里的空白符包括空格符、水平制表符和換行符)。該題的關(guān)鍵是統(tǒng)計(jì)單詞的個(gè)數(shù),由于規(guī)定單詞之間用一個(gè)空白符分開,則問(wèn)題就變得很簡(jiǎn)單,只要統(tǒng)計(jì)空白符的個(gè)數(shù)就可以知道單詞的個(gè)數(shù)。22#include<stdio.h>voidmain(){charc;intalpha=0,num=0,ch=0,word=0;while((c=getchar())!=EOF)//EOF代表文本結(jié)束,鍵盤上對(duì)應(yīng)Ctrl+Z{if(c==''||c=='\t'||c=='\n')//當(dāng)字符是空白符時(shí)將word計(jì)數(shù)變量自增

word++;if(c>='a'&&c<='z'||c>='A'&&c<='Z')//當(dāng)字符是字母時(shí)將alpha計(jì)數(shù)變量自增

alpha++;elseif(c>='0'&&c<='9')//當(dāng)字符是數(shù)值時(shí)將num計(jì)數(shù)變量自增

num++;else//其他情況將ch計(jì)數(shù)變量自增

ch++;}

printf("字母數(shù)=%d\n",alpha);

prin

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論