FOR嵌套循環(huán).ppt_第1頁
FOR嵌套循環(huán).ppt_第2頁
FOR嵌套循環(huán).ppt_第3頁
FOR嵌套循環(huán).ppt_第4頁
FOR嵌套循環(huán).ppt_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、循環(huán)嵌套結(jié)構(gòu),例1 顯示右側(cè)圖形,main() int i; for(i=1;i=5;i+) printf(* ); getch(); ,* * * * *,例2 顯示右側(cè)圖形,main() int i,j; for(i=1;i=4;i+) for(j=1;j=5;j+) printf(* ); printf(n); getch(); ,* * * * * * * * * * * * * * * * * * * *,例3 顯示右側(cè)圖形,main() int i,j; for(i=1;i=4;i+) for(j=1;j=i;j+) printf(* ); printf(n); getch();

2、,* * * * * * * * * *,例4 顯示右側(cè)圖形,main() int i,k,j; for(i=1;i=4;i+) for(k=1;k=4-i;k+) printf( ); for(j=1;j=i;j+) printf(* ); printf(n); getch(); ,* * * * * * * * * *,例5 顯示右側(cè)圖形,main() int i,j; for(i=1;i=4;i+) for(j=1;j=i;j+) printf(%d ,j); printf(nn); for(i=1;i=4;i+) for(j=1;j=5-i;j+) printf(%d ,j); pri

3、ntf(nn); ,1 1 2 1 2 3 1 2 3 4 1 2 3 4 1 2 3 1 2 1,例6 編程輸出下面的數(shù)字金字塔(1到9 )。,1 121 12321 . 12345678987654321,main() int i,j,k,t; for(i=1;i=9;i+) for(j=1;j=10-i;j+) printf( ); for(k=1;k=i;k+) printf(%d,k); for(t=1;t=i-1;t+) printf(%d,i-t); printf(n); ,例7 用0-9這十個數(shù)字可以組成多少無重復的三位數(shù)?,編程方法: “窮舉法” 按問題本身的性質(zhì),一一列舉出

4、該問題所有可能的解,并在逐一列舉的過程中,檢驗每個可能解是否是問題的真正解,若是,我們采納這個解,否則拋棄它。對于所列舉的值,既不能遺漏也不能重復。,#include stdio.h void main() /*a,b,c代表百位、十位、個位*/ int x,a,b,c,num=0; /*num存放滿足條件的數(shù)的個數(shù),注意num要賦初值*/ for(x=100;x=999;x+) a=x/100;b=x/10%10;c=x%10; if(a!=b ,例8.以下問題可以用窮舉法編程,某旅行團有男人、女人和小孩共30人,在紐約一家小飯館里吃飯,該飯館按人頭收費,每個男人收3美元,每個女人收2美元,

5、每個小孩收1美元,共收取50美元。男人、女人和小孩各有都少人?共有多少組解。,main() int m,w,c; for(m=0;m=16;m+) for(w=0;w=25;w+) for(c=0;c=50;c+) if(3*m+2*w+c=50 ,編程方法: “遞推法”,例9: 裴波那契數(shù)列的第1、2項分別為1、1,以后各項的值均是其前兩項之和。求前30項菲波那契數(shù)。,所謂遞推法就是從初值出發(fā),歸納出新值與舊值間的關(guān)系,直到求出所需值為止。新值的求出依賴于舊值,不知道舊值,無法推導出新值。數(shù)學上遞推公式正是這一類問題。,f1-第一個數(shù) f2-第二個數(shù) f3-第三個數(shù) f1=1; f2=1;

6、f3=f1+f2;,以后只要改變f1,f2的值,即可求出下一個數(shù). f1=f2;f2=f3; f3=f1+f2;,遞推,void main() long f1=1, f2=1, f3; int k;,參考程序:,printf( %ldt%ldt , f1,f2);,for(k=3;k=30;k+) f3=f1+f2; printf( %ldt ,f3); f1=f2; f2=f3; ,注意f1、f2、f3、x 的類型,遞推,循環(huán)結(jié)構(gòu)程序設(shè)計舉例,【例10】 求,#include stdio.h void main() float s=0,f1=2,f2=1,f=1,t,n; /*累加器賦初值*

7、/ for(n=1;n=10;n+) s=s+f*f1/f2; /*累加器當前值=累加器原來的值+新的要加的數(shù)據(jù)*/ f=f*(-1);t=f2;f2=f1;f1=f1+t; /*為求下一個要加的數(shù)據(jù)做準備*/ printf(s=%fn,s); ,【例11】輸入任意一個正整數(shù),將其逆序輸出,例如輸入1234,輸出4321。,include stdio.h void main() long y,n; scanf(%ld, ,【例12】猴子第一天摘下若干個桃子,當即吃了一半,又多吃了一個。以后每天早晨猴子都吃掉前一天剩下的一半多一個。到第5天時,猴子再去吃桃子時發(fā)現(xiàn)只剩下1個桃子。問第一天猴子摘了

8、多少個桃子?,#include stdio.h void main() int x=1,n; for(n=4;n=1;n-) x=(x+1)*2; printf(%d,x); ,【例13】 猜數(shù)游戲:任意設(shè)置一個整數(shù),請用戶從鍵盤上輸入數(shù)據(jù)猜想設(shè)置的數(shù)是什么,告訴用戶是猜大了還是小了。10次以內(nèi)猜對,用戶獲勝。否則,告訴用戶設(shè)置的數(shù)據(jù)是什么。,#include stdio.h void main() int num=123,x,n; printf(hint:0num) printf(bigger!n); if(xnum) printf(smaller!n); if(n=11) printf(L

9、ost!the number is %dn,x); ,1、寫出程序運行結(jié)果: void main() int i,j,x=0; for(i=0;i2;i+) x+; for(j=0;j=3;j+) if(j%2) continue; x+; x+; printf(“x=%dn”,x); ,運行結(jié)果: x=8,練 習,2、將程序補充完整。以下程序從輸入數(shù)據(jù)中統(tǒng)計正整數(shù)和負整數(shù)的個數(shù).用輸入0來結(jié)束輸入.變量i存放正整數(shù)個數(shù),變量j存放負整數(shù)的個數(shù). void main() 1 i,j,n; i=j=0; scanf(“%d”, ,3.百錢買百雞.公雞5元一只,母雞3元一只,小雞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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論