第3章程序的控制結(jié)構(gòu)ppt課件_第1頁
第3章程序的控制結(jié)構(gòu)ppt課件_第2頁
第3章程序的控制結(jié)構(gòu)ppt課件_第3頁
第3章程序的控制結(jié)構(gòu)ppt課件_第4頁
第3章程序的控制結(jié)構(gòu)ppt課件_第5頁
已閱讀5頁,還剩86頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、C 語 言 程 序 設(shè) 計(jì)湖北民族學(xué)院信息工程學(xué)院 張 帆zhang_hbmy第3章 程序的控制構(gòu)造3.1 算法與語句 3.1.1算法及其特征 一個(gè)程序包括以下兩方面的內(nèi)容:1數(shù)據(jù)的描畫和組織方式。在程序中要指定數(shù)據(jù)的類型和數(shù)據(jù)的組織方式,即數(shù)據(jù)構(gòu)造。2對(duì)操作的描畫,即操作步驟,也就是算法。 瑞士計(jì)算機(jī)科學(xué)家N沃思(Nikiklaus Wirth )教授提出了程序定義的著名公式:程序 數(shù)據(jù)構(gòu)造 算法 程序設(shè)計(jì)需處理兩個(gè)問題: 程序按什么順序或步驟執(zhí)行算法 運(yùn)用什么語句實(shí)現(xiàn)1.算法的概念 計(jì)算機(jī)處理問題的方法和步驟就是計(jì)算機(jī)算法,即算法是對(duì)某一特定問題的求解步驟的一種描

2、畫。 2.算法的特性1有窮性:一個(gè)算法必需保證執(zhí)行有限步之后終了;2確定性:算法的每一個(gè)步驟必需具有確切的定義;3有效性:算法的每一步都必需是計(jì)算機(jī)能進(jìn)展的有效操作;4輸入:一個(gè)算法有零個(gè)或多個(gè)輸入;5輸出:一個(gè)算法有一個(gè)或多個(gè)輸出。3.1 算法與語句 3.1 算法與語句 3.1.2算法和程序構(gòu)造 算法含有兩大組成要素:1.操作 C言語所描畫的操作主要包括算術(shù)運(yùn)算、邏輯運(yùn)算、關(guān)系運(yùn)算、函數(shù)運(yùn)算、位運(yùn)算和I/O操作等。2.控制構(gòu)造 控制構(gòu)造控制算法所描畫的各種操作的執(zhí)行順序。 順序構(gòu)造 選擇構(gòu)造 循環(huán)構(gòu)造 算法設(shè)計(jì)中,由三種根本構(gòu)造可組成任何復(fù)雜構(gòu)造的算法。3.1.3 算法的描畫自然言語描畫傳統(tǒng)

3、流程圖描畫用N-S圖描畫偽代碼描畫3.1 算法與語句 1.用自然言語描畫算法例:用自然言語描畫算法求5!1原始方法:求12,得到結(jié)果2;:將中的結(jié)果乘以3,得到新的結(jié)果6;:將中的結(jié)果乘以4,又得到新的結(jié)果24;:將中的結(jié)果乘以5,得到最后的結(jié)果120。2改良方法:定義整型變量facto,初始值置為1;:定義整型變量i,初始值置為2;:使factoi,將乘積賦值給變量facto;:使i+1,將結(jié)果賦值給i;:判別i的值能否小于或等于5,假設(shè)是,前往并反復(fù) ,否那么輸出facto的值。1.用自然言語描畫算法2.用傳統(tǒng)流程圖描畫算法流程圖是對(duì)給定算法的一種圖形解法。也稱框圖,用規(guī)定的一系列圖形、流

4、程線及文字闡明表示算法。詳細(xì)例子見教材用傳統(tǒng)流程圖表示求5!的算法FTfac=fac*ii5 fac= fac ii = i + 1 輸出 faci=24.用偽代碼描畫算法 Begin(算法開場(chǎng)) fac=1 i=2while ib)&(n=cd)短路特性:邏輯表達(dá)式求解時(shí),并非一切的邏輯運(yùn)算符都被執(zhí)行,只是在必需執(zhí)行下一個(gè)邏輯運(yùn)算符才干求出表達(dá)式的解時(shí),才執(zhí)行該運(yùn)算符2.3運(yùn)算符與表達(dá)式/只在a為真時(shí),才判別b的值;/只在a為假時(shí),才判別b的值;/結(jié)果m=0,n=12.3.4邏輯運(yùn)算符和表達(dá)式4第3章 程序的控制構(gòu)造3.2 數(shù)據(jù)的輸入與輸出 C言語無I/O語句,I/O操作由庫函數(shù)實(shí)現(xiàn)#inc

5、lude 本節(jié)引見用于鍵盤輸入和顯示器輸出的庫函數(shù)一、字符的輸入與輸出函數(shù) 1.字符輸出函數(shù)putchar() 調(diào)用格式: putchar(參數(shù)); 功能:在顯示器上輸出單個(gè)字符 參數(shù):可以是字符常量、字符型變量或整型變量,即將一個(gè)整型數(shù)作為ASCII編碼輸出相應(yīng)的字符。 前往值:輸出勝利前往輸出字符的ASCII碼值;出錯(cuò),為EOF(-1)【例】輸出單個(gè)字符。#include main() int i=97; char ch=a; putchar(i) ; putchar(n) ; putchar(ch) ; 程序運(yùn)轉(zhuǎn)結(jié)果為:aa一、字符的輸入與輸出函數(shù)2.字符輸入函數(shù)getchar( ) 調(diào)

6、用格式:getchar( ); 功能:從鍵盤上讀入一個(gè)字符。 返值:假設(shè)讀入勝利,前往讀入字符的ASCII碼值; 出錯(cuò),前往EOF(-1)通常把讀入的字符賦予一個(gè)字符變量,構(gòu)成賦值語句。例: char c; c=getchar();一、字符的輸入與輸出函數(shù)【例3.2】輸入單個(gè)字符。#includemain() int ch; ch=getchar(); putchar(ch);程序運(yùn)轉(zhuǎn)結(jié)果如下: a a執(zhí)行g(shù)etchar()時(shí)輸入字符以回車終了輸入。 一、字符的輸入與輸出函數(shù)二、格式化輸入/輸出函數(shù) 1格式輸出函數(shù)printf( ) 調(diào)用格式:printf(“格式控制字符串,輸出項(xiàng)列表 功能:

7、按格式控制字符串指定格式,向顯示器輸出所列出的輸出項(xiàng) 前往值:假設(shè)輸出勝利,前往輸出字節(jié)數(shù);出錯(cuò),前往EOF(-1) printf(“a=%4d,b=%4d,a,b);格式控制字符串輸出項(xiàng)表列1格式輸出函數(shù)printf( )格式控制字符串格式闡明:用于指定輸出格式,由“%、格式控制字符、附加格式修飾符組成。普通字符或本義序列:原樣輸出輸出項(xiàng)表列:要輸出的數(shù)據(jù),可以沒有,多個(gè)時(shí)以“,分隔。輸出項(xiàng)的個(gè)數(shù)必需與格式闡明的個(gè)數(shù)一致,位置一一對(duì)應(yīng)。printf(“a=%4d,b=%4d,a,b);格式控制字符串輸出項(xiàng)表列1格式輸出函數(shù)printf( )格式闡明: %flags width .prec F

8、|N|H|L type 標(biāo)志 輸出最小寬度 精度 長度 類型1)type類型 表示格式控制字符,用來闡明對(duì)應(yīng)輸出項(xiàng)的輸出格式d以帶符號(hào)的十進(jìn)制形式輸出整數(shù)(正數(shù)不輸出符號(hào)) o以8進(jìn)制無符號(hào)形式輸出整數(shù)(不輸出前導(dǎo)符O) x(X)以16進(jìn)制無符號(hào)形式輸出整數(shù)(不輸出前導(dǎo)符Ox) u以無符號(hào)10進(jìn)制形式輸出整數(shù) c以字符形式輸出一個(gè)字符s輸出字符串 f以小數(shù)形式輸出單、雙精度數(shù),默認(rèn)輸出6位小數(shù) e(E)以標(biāo)準(zhǔn)指數(shù)形式輸出單、雙精度數(shù),小數(shù)位數(shù)為6位 g(G)選用%f或%e格式中輸出寬度較短的一種格式 1格式輸出函數(shù)printf( )格式闡明: %flags width .prec F|N|H|

9、L type 標(biāo)志 輸出最小寬度 精度 長度 類型2)附加格式修飾符:可根據(jù)輸出格式要求進(jìn)展取舍。 Flags標(biāo)志字符常用的:- : 為左對(duì)齊,系統(tǒng)默許右對(duì)齊+:正數(shù)輸出+,負(fù)數(shù)輸出-空格:正數(shù)輸出空格,負(fù)數(shù)輸出-Width寬度指示符:用十進(jìn)制數(shù)來設(shè)置輸出值的最少輸出個(gè)數(shù),少那么補(bǔ)空格,多那么按實(shí)踐輸出,缺省那么按實(shí)踐輸出。.prec精度指示符:用小數(shù)點(diǎn)加十進(jìn)制正整數(shù)構(gòu)成,用來限制輸出數(shù)的精度,對(duì)于實(shí)數(shù),指定輸出的小數(shù)位數(shù)四舍五入。F|N|h|L 長度修飾符:見教材例 int a=1234; float f=123.456; char ch=a; printf(“%8d,%2dn,a,a);

10、printf(“%f,%8f,%8.1f,%.2f,%.2en,f,f,f,f,f); printf(“%3cn,ch);運(yùn)轉(zhuǎn) 1234,1234結(jié)果: 123.456000,123.456000, 123.5,123.46,1.23e+2 a1格式輸出函數(shù)printf( )2. 格式化輸入函數(shù)scanf( ) 調(diào)用格式:scanf(格式控制字符串,地址表列)功能:按格式控制字符串指定的格式,從鍵盤讀入數(shù)據(jù),并存入地址表指定的內(nèi)存單元。前往值:前往輸入數(shù)據(jù)個(gè)數(shù)例:scanf(“%d,%d,%f ,&a,&b,&c);地址表列:由一個(gè)或多個(gè)地址組成,假設(shè)有多個(gè)以逗號(hào)隔開。常用取地址運(yùn)算符&得到變

11、量地址。格式控制字符串: 格式闡明:闡明需輸入數(shù)據(jù)的類型。普通字符:輸入數(shù)據(jù)時(shí)要原樣輸入。二、格式化輸入/輸出函數(shù) 格式闡明: % * widthF|Nh|LtypeType類型:是必需的,表示需輸入數(shù)據(jù)的類型。d(D)十進(jìn)制整數(shù)o(O)八進(jìn)制整數(shù)x(X)十六進(jìn)制整數(shù)i(I)自動(dòng)根據(jù)數(shù)頭分辨十、八、十六進(jìn)制u(U)無符號(hào)十進(jìn)制整數(shù)c單個(gè)字符s字符串f(e,g,G)實(shí)數(shù)n不輸入數(shù)據(jù),將已讀入的字符輸送到對(duì)應(yīng)的地址中%百分號(hào)2. 格式化輸入函數(shù)scanf( ) 格式闡明: % * widthF|Nh|Ltype*輸入賦值抑制字符:輸入數(shù)據(jù)但不賦給對(duì)應(yīng)變量,跳過該輸入。width寬度指示符:表示最多

12、可輸入的字符個(gè)數(shù)。F|N地址大小修飾符:Ffar Nnearh|L輸入數(shù)據(jù)類型:h短整型,l長整或雙精度2. 格式化輸入函數(shù)scanf( ) 例: scanf(%d %*d %d,&a,&b);輸入:5 6 7時(shí)把5賦予a,6被跳過,7賦予b。2. 格式化輸入函數(shù)scanf( ) 闡明:(1)scanf的格式控制字符串中的普通字符必需原樣輸入。 例: scanf“x=%d,&x;(2)輸入分隔符的指定普通以空格、TAB或回車鍵作為分隔符其它字符做分隔符:格式串中兩個(gè)格式符間字符(3)scanf函數(shù)中沒有精度控制,如:scanf(“%5.2f,&a);是非法的。例 scanf(“%d,%d,%d

13、,&a,&b,&c); 輸入 12,24,36 2. 格式化輸入函數(shù)scanf( ) 例 scanf(“%d%d%d,&a,&b,&c); 輸入 12 24 36 例:輸入圓的半徑,輸出圓的周長和面積。分析: 1.定義實(shí)型變量r、c、s用于存放半徑、周長、面積;2.調(diào)用輸入函數(shù),輸入r:3.分別利用周長公式和面積公式求出c、s;4.調(diào)用輸出函數(shù)輸出c、s。3.2 根本輸入/輸出函數(shù)#include void main() float r,c,s; scanf(“ %f ,&r); /*輸入一個(gè)浮點(diǎn)數(shù)據(jù),存入地址&r */ c = 2 * 3.14159 * r; /*計(jì)算周長,賦值給c */

14、s = 3.14159 *r * r; /*計(jì)算面積,賦值給s */printf(“n c=%8.4f,c); /*周長占8個(gè)字符寬,4位小數(shù)*/printf(“n s=%8.4f,s); /*輸出面積,數(shù)據(jù)共占8個(gè)字符寬,4位小數(shù)*/3.2 根本輸入/輸出函數(shù)C 語 言 程 序 設(shè) 計(jì)湖北民族學(xué)院信息工程學(xué)院 張 帆zhang_hbmy分析:1.輸入小寫字母存入變量a;2.轉(zhuǎn)換成大寫a = a-32;3.輸出 a。例:從鍵盤輸入一個(gè)小寫字母,用大寫方式輸出該字母。3.2 根本輸入/輸出函數(shù)#include main() char a; printf(Input a

15、lowercase letter:); a =getchar(); a =a-32; /*將大寫字母轉(zhuǎn)換成對(duì)應(yīng)的小寫字母*/ printf(%c n,a);思索:如何使程序可以處置任何字符的輸入。即判別輸入的是小寫字母,才轉(zhuǎn)換成大寫;假設(shè)輸入的其他字符,那么直接輸出。 3.2 根本輸入/輸出函數(shù)構(gòu)造化程序設(shè)計(jì)根本思想:任何程序都可以用三種根本構(gòu)造表示,限制運(yùn)用無條件轉(zhuǎn)移語句goto構(gòu)造化程序:由三種根本構(gòu)造反復(fù)嵌套構(gòu)成的程序優(yōu)點(diǎn):構(gòu)造明晰,易讀,提高程序設(shè)計(jì)質(zhì)量和效率三種根本構(gòu)造構(gòu)造化程序的三種根本構(gòu)造順序構(gòu)造、選擇構(gòu)造、循環(huán)構(gòu)造3.3順序構(gòu)造特點(diǎn):程序按照語句編排的先后順序依次執(zhí)行有點(diǎn):程序

16、簡(jiǎn)單明了,按順序執(zhí)行缺陷:功能有限,很難處置復(fù)雜問題教材例題prog03_08.cABab二分支選擇構(gòu)造多分支選擇構(gòu)造特點(diǎn):經(jīng)過對(duì)某個(gè)給定條件的判別,自動(dòng)選擇要執(zhí)行的語句PAB真假bakA1A2AiAnk=k2k=k1k=knk=ki. ab3.4選擇構(gòu)造例如分段函數(shù)分析:首先判別 x,假設(shè)x0,那么 y=3-x; 否那么,y=2 * x;需求根據(jù)x的值進(jìn)展流程選擇分支3.4選擇構(gòu)造 C言語的選擇語句有兩種:if語句、switch語句 main() float x , y; scanf(“%f , &x); y = 2 * x ; if ( x 0 ) y = 3 - x ; printf(“

17、y= %6.2f, y ); 1.單分支選擇構(gòu)造:格式:if (表達(dá)式) 語句執(zhí)行過程:表達(dá)式語句真假表達(dá)式語句1語句2真假2.雙分支選擇構(gòu)造:格式:if (表達(dá)式) 語句1else語句2執(zhí)行過程:3.4.1if語句main() float x , y; scanf(“%f , &x); if ( x 0 ) y = 3 - x ; else y = 2 * x ; printf(“y= %6.2f, y ); main() float x , y; scanf(“%f , &x); y = 2 * x ; if ( x b 那么輸出a ;否那么,輸出b。#include main( ) fl

18、oat a, b; scanf(“%f, %f,&a, &b); if (ab) printf (“%f, a ); else printf (“%f, b ); 3.4選擇構(gòu)造表達(dá)式1語句1真假表達(dá)式2表達(dá)式3語句n語句3語句2真真假假3.多分支選擇構(gòu)造:格式: if ( 表達(dá)式1) 語句1 else if (表達(dá)式2 ) 語句2 else if(表達(dá)式3 ) 語句3 . else 語句n執(zhí)行過程:例:if (salary1000) index=0.4; else if (salary800) index=0.3; else if (salary600) index=0.2; else if

19、 (salary400) index=0.1; else index=0; 3.4選擇構(gòu)造if語句中的表達(dá)式普通為關(guān)系或邏輯表達(dá)式,也可以為任何數(shù)值類型的表達(dá)式。執(zhí)行語句可以是一條簡(jiǎn)單語句、空語句或復(fù)合語句,也可以嵌套其它流程控制語句。 if(x) if(x!=0) if(!x) if(x=0)例 思索下面程序的輸出結(jié)果: #include main() int x,y; scanf(“%d,%d,&x,&y); if(xy) x=y; y=x; else x+; y+; printf(“%d,%dn,x,y);Compile Error!3.4選擇構(gòu)造3.4.2 if語句的嵌套 當(dāng)if語句中

20、的執(zhí)行語句又是if語句時(shí),那么構(gòu)成了if 語句嵌套的情形。 例如:if ( 表達(dá)式1) if ( 表達(dá)式2) 語句1; if ( 表達(dá)式1) if ( 表達(dá)式2) 語句1; else 語句2;3.4選擇構(gòu)造#include main() int x,y; printf(Enter integer x,y:); scanf(%d,%d,&x,&y); if(x!=y) if(xy) printf(XYn); else printf(XYn); else printf(X=Yn);運(yùn)轉(zhuǎn):Enter integer x,y:12,23 XY Enter integer x,y:12,12 X=Y例

21、:輸入兩整數(shù)并判別其大小關(guān)系3.4選擇構(gòu)造缺省 時(shí),else總是和它上面離它最近的未配對(duì)的if配對(duì)if()if()if()else.else.else.if else 配對(duì)原那么:3.4選擇構(gòu)造例: if (a=b) if(b=c) printf(“a=b=c); else printf(“a!=b);修正: if (a=b) if(b=c) printf(“a=b=c); else printf(“a!=b);實(shí)現(xiàn)if else 正確配對(duì)方法:加 3.4選擇構(gòu)造例 思索下面程序輸出結(jié)果: main() int x=100,a=10,b=20; int v1=5,v2=0; if(a60n);

22、 break; .3.4.3 switchcase語句switch(grade)case A:printf(“85100n); case B:printf(“7084n); case C:printf(“6069n); case D:printf(“60n); default: printf(“errorn); 運(yùn)轉(zhuǎn)結(jié)果:假設(shè)grade為A那么輸出:85100 7084 6069 60 error3.4.3 switchcase語句例:按照考試成果的等級(jí)打印出百分制分?jǐn)?shù) 段,可以用switch語句實(shí)現(xiàn)例:按照考試成果的等級(jí)打印出百分制分?jǐn)?shù) 段,可以用switch語句實(shí)現(xiàn)3.4.3 switch

23、case語句switch(grade)case A:printf(“85100n);break; case B:printf(“7084n);break; case C:printf(“6069n);break; case D:printf(“60n);break; default:printf(“errorn); 運(yùn)轉(zhuǎn)結(jié)果:假設(shè)grade為A那么輸出:85100 運(yùn)轉(zhuǎn)結(jié)果:假設(shè)grade為E那么輸出:error 例 void main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0: a+; break; case 1: b

24、+; break; case 2: a+;b+; break; case 3: a+;b+; printf(“na=%d,b=%d,a,b); 運(yùn)轉(zhuǎn)結(jié)果:a=2,b=13.4.3 switchcase語句例,根據(jù)輸入的學(xué)生百分制成果判別等級(jí)并輸出。3.4.3 switchcase語句score059 60697079808990100score/10score/100,1,2,3,4,56789,10default運(yùn)用switch解題的關(guān)鍵是經(jīng)過分析找到表達(dá)式然后將問題分幾種情況3.4.3 switchcase語句case 4:case 5: y=E;break;case 6: y=D; br

25、eak;case 7: y=C; break;case 8: y=B; break;case 9:case 10: y=A;break;default: y= ; if(y= ) printf(Score error!);else printf(Grade=%c,y);#includemain()int x;char y;printf(nx:);scanf(%d,&x);switch(x/10) case 0:case 1:case 2:case 3:3.4.3 switchcase語句switch和else-if的比較else-if比switch的條件控制更強(qiáng)大一些else-if可以按照各種

26、邏輯運(yùn)算的結(jié)果進(jìn)展流程控制switch只能進(jìn)展=判別,并且只能是整數(shù)判別switch比else-if更明晰兩者都要盡量防止用得過多、過長,尤其不要嵌套得太多,它們大大添加程序的分支,使邏輯關(guān)系顯得混亂,不易維護(hù),易出錯(cuò)3.4.3 switchcase語句C 語 言 程 序 設(shè) 計(jì)湖北民族學(xué)院信息工程學(xué)院 張 帆zhang_hbmy當(dāng)型循環(huán)構(gòu)造直到型循環(huán)構(gòu)造PA假真baAP假真ba循環(huán)構(gòu)造3.5循環(huán)構(gòu)造C言語有while 、 do - while 、和for語句三種循環(huán)構(gòu)造語句。前兩個(gè)稱為條件循環(huán),即根據(jù)條件來決議能否繼續(xù)循環(huán);后一個(gè)稱為計(jì)數(shù)循環(huán),即根據(jù)設(shè)定的執(zhí)行次數(shù)來

27、執(zhí)行循環(huán)。3.5循環(huán)構(gòu)造普通方式:while (表達(dá)式) 循環(huán)體語句;執(zhí)行流程:表達(dá)式循環(huán)體假(0)真(非0)while3.5.1while語句3.5循環(huán)構(gòu)造特點(diǎn):先判別表達(dá)式,后執(zhí)行循環(huán)體闡明:假設(shè)表達(dá)式的值一開場(chǎng)就為0,那么循環(huán)體一次也不執(zhí)行循環(huán)體可為恣意類型語句循環(huán)體中應(yīng)有使循環(huán)趨向于終了的語句While語句特點(diǎn)和闡明3.5循環(huán)構(gòu)造用while循環(huán)求1至100的和.3.5循環(huán)構(gòu)造處理“累加類型問題根本方法: 兩個(gè)變量:累加和,當(dāng)前項(xiàng) 1先給累加和賦初值普通為0; 2用循環(huán)語句實(shí)現(xiàn)累加; 3循環(huán)體語句的設(shè)計(jì): 累加和當(dāng)前值=累加和原值+當(dāng)前項(xiàng) ;例:用while循環(huán)求1至100的和 #in

28、clude main( ) int i,sum=0; i=1; while(i=100) sum=sum+i; i+; printf(%d,sum); 循環(huán)初值循環(huán)終值循環(huán)變量增值循環(huán)條件循環(huán)體3.5循環(huán)構(gòu)造 #include main() int i=1; while(i=10) printf(%d*%d=%dn,i,i,i*i); i+; 運(yùn)轉(zhuǎn)結(jié)果:1*1=12*2=43*3=94*4=165*5=256*6=367*7=498*8=649*9=8110*10=100例 輸出110的平方3.5循環(huán)構(gòu)造普通方式:do 循環(huán)體語句; while(表達(dá)式);執(zhí)行流程:do循環(huán)體表達(dá)式假(0)真(

29、非0)while3.5.2do-while語句3.5循環(huán)構(gòu)造特點(diǎn):先執(zhí)行循環(huán)體,后判別表達(dá)式闡明:至少執(zhí)行一次循環(huán)體dowhile可轉(zhuǎn)化成while構(gòu)造表達(dá)式循環(huán)體假(0)真(非0)循環(huán)體While循環(huán)dowhile語句特點(diǎn)和闡明3.5循環(huán)構(gòu)造例:用do-while循環(huán)求1至100的和。 #include main( ) int i,sum=0; i=1; do sum=sum+i; i+; while(i =100) printf(%d,sum); #include main( ) int i,sum=0; i=1; while(i=100) sum=sum+i; i+; printf(%d

30、,sum); 運(yùn)轉(zhuǎn)結(jié)果:5050 運(yùn)轉(zhuǎn)結(jié)果:50503.5循環(huán)構(gòu)造普通方式:for(表達(dá)式1 ; 表達(dá)式2 ; 表達(dá)式3) 循環(huán)體語句;執(zhí)行流程:3.5.3for語句表達(dá)式2循環(huán)體假(0)真(非0)for表達(dá)式1表達(dá)式33.5循環(huán)構(gòu)造for語句普通運(yùn)用方式:for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值)循環(huán)體語句;例 :用for循環(huán)求1至100的和。#include main() int i,sum=0; for(i=1;i=100;i+) sum=sum+i; printf(%d,sum);3.5循環(huán)構(gòu)造 for語句中表達(dá)式1; 表達(dá)式2 ;表達(dá)式3 類型恣意,都可省略,但分號(hào);不可省。1

31、省略了“表達(dá)式1循環(huán)變量賦初值, 表示不對(duì)循環(huán)控制變量賦初值2省略了“表達(dá)式2(循環(huán)條件), 那么不做其它處置時(shí)便成為死循環(huán)3省略了“表達(dá)式3(循環(huán)變量增量), 那么不對(duì)循環(huán)控制變量進(jìn)展操作,這時(shí)可在語句體中參與修正循環(huán)控制變量的語句for語句闡明3.5循環(huán)構(gòu)造逗號(hào)表達(dá)式 逗號(hào)運(yùn)算符的主要運(yùn)用就在for語句中。 for語句中的表達(dá)式1和表達(dá)式3可以是逗號(hào)表達(dá)式,特別是有兩個(gè)循環(huán)變量參與對(duì)循環(huán)的控制時(shí)。表達(dá)式1和表達(dá)式3為逗號(hào)表達(dá)式,將使程序顯得非常明晰。 例: for( i=1, j=10 ;i=j; i+, j-)3.5循環(huán)構(gòu)造例: 求 1/100+2/99+50/51 float s=0.0; for(i=1,j=100; ij; i+,j-) s = s + i/j;3.5循環(huán)構(gòu)造選擇三種循環(huán)的普通思緒:假設(shè)循環(huán)次數(shù)知,用for假設(shè)循環(huán)次數(shù)未知,用while假設(shè)循環(huán)體至少要執(zhí)行一次,用do-while只是思緒,不是定律3.5循環(huán)構(gòu)造在一個(gè)循環(huán)構(gòu)造中又嵌入另一個(gè)或幾個(gè)完好的循環(huán)構(gòu)造,稱為循環(huán)的嵌套。嵌套在內(nèi)的循環(huán)體稱為內(nèi)循環(huán),外面的循環(huán)體稱為外循環(huán)。假設(shè)內(nèi)循環(huán)體中又有嵌套的循環(huán)語句。那么構(gòu)成多重循環(huán)。While 、do-while、for三種

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論