C語言函數循環學習教案_第1頁
C語言函數循環學習教案_第2頁
C語言函數循環學習教案_第3頁
C語言函數循環學習教案_第4頁
C語言函數循環學習教案_第5頁
已閱讀5頁,還剩27頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、會計學1C語言函數循環語言函數循環ABAB流程圖N-S圖第1頁/共32頁PAB真假PBA真假kA1A2AiAnk=k2k=k1k=knk=ki.l 選擇結構p二分支p多分支第2頁/共32頁l當型循環結構l直到型循環結構PA假真當P為真AAP真假A直到P為真第3頁/共32頁goto 語句標號; .標號:語句; 第4頁/共32頁v功能:無條件轉移語句v說明:l 不能用整數作標號l 只能出現在goto所在函數內,且唯一l 只能加在可執行語句前面l 限制使用goto語句第5頁/共32頁1001nn #include main() int i,sum=0; i=1; loop: if (i=100) s

2、um+=i; i+; goto loop; printf(%d,sum); 第6頁/共32頁v一般形式:while(表達式) 循環體語句;v執行流程:expr循環體假(0)真(非0)while第7頁/共32頁用用whilewhile循環求循環求 1001nn #include main() int i,sum=0; i=1; while(i=100) sum=sum+i; i+; printf(%d,sum); 第8頁/共32頁do 循環體語句; while(表達式);v執行流程:do循環體expr假(0)真(非0)whilev一般形式:第9頁/共32頁v特點:先執行循環體,后判斷表達式v說明

3、:l至少執行一次循環體ldowhile可轉化成while結構expr循環體假(0)真(非0)循環體While循環第10頁/共32頁v 一般形式:for(expr1 ; expr2 ; expr3) 循環體語句;v 執行流程:expr2循環體假(0)真(非0)forexpr1expr3第11頁/共32頁for(循環變量賦初值;循環條件;循環變量增值) 循環體語句; v 說明:說明:lfor語句中expr1, expr2 ,expr3 類型任意,都可省略,但分號;不可省l無限循環: for(;)lfor語句可以轉換成while結構expr1;while(expr2)循環體語句;expr3;第12頁

4、/共32頁例:#include main( ) int i=0; for(i=0;i10;i+) putchar(a+i); 運行結果:abcdefghij例:#include main( ) int i=0; for(;i10;i+) putchar(a+i); 例:#include main( ) int i=0; for(;i10;) putchar(a+(i+); 例:#include main( ) int i=0; for(;i10;putchar(a+i),i+) ; 第13頁/共32頁v三種循環可互相嵌套,層數不限v外層循環可包含兩個以上內循環,但不能相互交叉v嵌套循環的執行流

5、程(1) while() while() . (2) do do while( ); . while( );(3) while() do while( ); . (4) for( ; ;) do while(); while() .第14頁/共32頁v嵌套循環的跳轉禁止:l從外層跳入內層l跳入同層的另一循環l向上跳轉第15頁/共32頁第16頁/共32頁exprbreak;假(0)真(非0)whiledobreak;.expr假(0)真(非0)while第17頁/共32頁expr2break;.假(0)真(非0)forexpr1expr3switchexpr語句組1break;語句組2break

6、;語句組nbreak;語句組break;.const 1const 2const ndefaultcase 第18頁/共32頁 功能:結束本次循環,跳過循環體中尚未執行的語句,進行下一次是否執行循環體的判斷 僅用于循環語句中exprcontinue;假(0)真(非0)while真(非0)docontinue;.expr假(0)whileexpr2continue;.假(0)真(非0)forexpr1expr3第19頁/共32頁百馬百擔百馬百擔有100匹馬,馱100擔貨,其中大馬馱3擔,中馬馱2擔,兩匹小馬馱1擔,請列出所有的可能組合 for ( i=1; i=100; i+ ) for ( j

7、=1; j 0 ) x1 = (x2+1) * 2 ; /*第一天的桃子數是第2天桃子數加1后的2倍*/ x2 = x1; day - ; printf ( the total is %dn, x1 ) ;第22頁/共32頁古典問題:斐波那契數列 有一對兔子,從出生后第第3 3個月起每個月都生個月起每個月都生一對兔子一對兔子,小兔子長到第三個月后每個月又生一第三個月后每個月又生一對兔子對兔子,假如兔子都不死,問每個月的兔子總數為多少?1, 1, 2, 3, 5, 8, 13, 21.第23頁/共32頁main ( ) long fn1, fn2, fn3 ; int i, n ; printf

8、 ( 輸入月數(少于40): “ ); scanf ( %d, &n ) ; if ( n1 ) printf ( M.2:%10ld“ , fn2 ) ; for ( i=3; i=n; i+ ) fn3= fn1 + fn2 ; if ( i%4=0 ) printf (n) ; printf(M.%2d:%10ld,i,fn3); fn1=fn2; fn2=fn3; 第24頁/共32頁求s=a+aa+aaa+aaaa+aa.a的值,其中a是一個數字。例如2+22+222+2222+22222(此時共有5個數相加),幾個數相加有鍵盤控制。main ( ) int a, n, cou

9、nt = 1 ; long int sn = 0, tn = 0 ;printf (please input a and nn“ ) ;scanf ( %d, %d, &a, &n ) ; printf ( a=%d, n=%dn, a, n );while ( count=n )tn = tn+a ; sn = sn+tn;a = a*10 ; +count ; printf ( a+aa+.=%ldn“ , sn ) ;求和累加:第25頁/共32頁有5個人坐在一起,問第五個人多少歲?他說比第4個人大2歲。問第4個人歲數,他說比第3個人大2歲。問第三個人,又說比第2人大兩歲。

10、問第2個人,說比第一個人大兩歲。最后問第一個人,他說是10歲。請問第五個人多大? age ( int n ) int c ; if ( n=1) c=10; else c=age(n-1)+2; return(c); main() printf ( %d, age(5) ); 遞歸問題:第26頁/共32頁如果整數A的全部因子(包括1,不包括A本身)之和等于B;且整數B的全部因子(包括1,不包括B本身)之和等于A,則將整數A和B稱為親密數。求3000以內的全部親密數。 親密數窮舉問題窮舉問題第27頁/共32頁 main() int a, i, b, n; for (a=1; a3000; a+)

11、 /*窮舉3000以內的全部整數*/ for ( b=0, i=1; i=a/2; i+ ) if ( !(a%i) ) b += i ; for ( n=0, i=1; i=b/2; i+ ) if ( ! ( b%i ) ) n += i ; if ( n=a & a!= b) printf ( %4d.%4d , a , b ) ; 第28頁/共32頁兩個乒乓球隊進行比賽,各出三人。甲隊為a,b,c三人,乙隊為x,y,z三人。已抽簽決定比賽名單。有人向隊員打聽比賽的名單。a a說他不和說他不和x x比,比,c c說他不和說他不和x,zx,z比比,請編程序找出三隊賽手的名單。 ma

12、in() char i , j , k ; /*i是是a的對手,的對手,j是是b的對手,的對手,k是是c的對手的對手*/ for ( i=x ; i=z ; i+ ) for ( j=x ; j=z ; j+ ) if ( i != j ) for ( k=x; k=z; k+ ) if ( i!=k & j!=k ) if (i!=x & k!=x & k!=z ) printf(order is a-%ctb-%ctc-%cn,i,j,k); 第29頁/共32頁輸入一個長度不超過 100 的字符串,刪除串中的重復字符。 int alread_saved (char lastchar, char newstr, int j ) int i = 0 ; while ( i j ) if ( lastchar = newstri ) return 1; i+ ; return 0 ; 調試例題:第30頁/共32頁void main(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論