(6.17)-第16課(4.5節(jié)-循環(huán)結(jié)構(gòu)的嵌套)_第1頁
(6.17)-第16課(4.5節(jié)-循環(huán)結(jié)構(gòu)的嵌套)_第2頁
(6.17)-第16課(4.5節(jié)-循環(huán)結(jié)構(gòu)的嵌套)_第3頁
(6.17)-第16課(4.5節(jié)-循環(huán)結(jié)構(gòu)的嵌套)_第4頁
(6.17)-第16課(4.5節(jié)-循環(huán)結(jié)構(gòu)的嵌套)_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

循環(huán)結(jié)構(gòu)嵌套循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)的嵌套在程序設(shè)計中,一個循環(huán)語句的循環(huán)體又包含一個完整的循環(huán)結(jié)構(gòu)時,構(gòu)成多重循環(huán),又稱為循環(huán)語句的嵌套 for() { do { }while(); } for(){ do { } }while();循環(huán)結(jié)構(gòu)的嵌套三種循環(huán)結(jié)構(gòu)(while循環(huán)、for循環(huán)、do-while循環(huán))可以任意組合嵌套如果是多重循環(huán),外循環(huán)和內(nèi)循環(huán)應(yīng)選用不同的循環(huán)控制變量(1)while(){……while(){……}…...}(2)do{……do{……}while();…...}while();(3)while(){……do{……}while();…….}(4)for(;;){……do{……}while();……while(){……}…...}雙重循環(huán)嵌套的執(zhí)行過程表達式1……….YN表達式2……….Y……….N首先進行外層循環(huán)的條件判斷(表達式1),當(dāng)外層循環(huán)條件成立時順序執(zhí)行外層循環(huán)體語句遇到內(nèi)層循環(huán),則進行內(nèi)層循環(huán)條件判斷(表達式2),并在內(nèi)層循環(huán)條件成立的情況下反復(fù)執(zhí)行內(nèi)層循環(huán)體語句雙重循環(huán)嵌套的執(zhí)行過程表達式1……….YN表達式2……….Y……….N當(dāng)內(nèi)層循環(huán)因循環(huán)條件不成立而退出后重新返回到外層循環(huán)并順序執(zhí)行外層循環(huán)體的其它語句外層循環(huán)體執(zhí)行一次后,重新進行下一次的外層循環(huán)條件判斷,若條件依然成立,則重復(fù)上述過程,直到外層循環(huán)條件不成立時,退出雙重循環(huán)嵌套,執(zhí)行后面其它語句【例1:】按如下格式打印九九乘法口訣表解題思路

#include<stdio.h>

voidmain()

{ inti,

j; for(i=1;

i<=9;

i++)

//外循環(huán)控制輸出行

{

for(j=1;

j<=9;

j++)

//輸出該行的內(nèi)容*/

printf("%4d*%d=%2d",i,j,

i*j);

printf("\n");

//每行結(jié)束后輸出換行

}

}程序?qū)崿F(xiàn)【例2:】按如下格式打印九九乘法口訣表解題思路共輸出9行,第1行輸出1項、第2行輸出2項……第9行輸出9項每次進入外層循環(huán)后,內(nèi)層循環(huán)的循環(huán)次數(shù)是不固定的 #include<stdio.h>

voidmain()

{ inti,

j; for(i=1;

i<=9;

i++)

//外循環(huán)控制輸出行

{

for(j=1;

j<=i;

j++)

//輸出該行的內(nèi)容*/

printf("%4d*%d=%2d",i,j,

i*j);

printf("\n");

//每行結(jié)束后輸出換行

}

}程序?qū)崿F(xiàn)解題思路

三個未知數(shù),兩個方程

問題解決之道:窮舉法窮舉解決之道:循環(huán)【例3:】我國古代數(shù)學(xué)家張丘建在《算經(jīng)》中出了一道題“雞翁一,值錢五;雞母一,值錢三;雞雛三,值錢一。百錢買百雞,問雞翁、雞母、雞雛各幾何?”

算法如下假設(shè)x、y已知,由方程①可以得出z=100-x-y由條件可知x和y的值有限制:x在[0,20]之間;y在[0,33]之間。需要用兩重循環(huán)實現(xiàn)。每個x和y的組合都對應(yīng)一個z的值,如果x,y和z的值滿足方程②,即為所求結(jié)果由于計算機在完成實數(shù)運算(z/3)時有誤差,所以將方程②變形為:15x+9y+z=300#include<stdio.h>voidmain(){intx,y,z;for(x=0;x<=20;x++)//x表示公雞個數(shù)for(y=0;y<=33;y++)//y表示母雞個數(shù){z=100-x-y;//z表示雛雞個數(shù)if(15*x+9*y+z==300)printf(“公雞:%d只,母雞:%d只,雛雞:%d只\n”,x,y,z);}}程序?qū)崿F(xiàn)【例4:】輸出100~200之間的全部素數(shù)。每行輸出10個解題思路

#include<stdio.h>#include<math.h>voidmain(){intm,k,i,n=0;for(m=100;m<=200;m++)//外循環(huán){k=sqrt(m);for(i=2;i<=k;i++)//內(nèi)循環(huán)判斷m是否是素數(shù)if(m%i==0)break;if(i>=k+1)

{printf("%d",m);//如果是素數(shù),就輸出該數(shù)n=n+1;

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論