C++語言程序設(shè)計電子教案5_第1頁
C++語言程序設(shè)計電子教案5_第2頁
C++語言程序設(shè)計電子教案5_第3頁
C++語言程序設(shè)計電子教案5_第4頁
C++語言程序設(shè)計電子教案5_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計程序設(shè)計 YYHYYH版版第第5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計 5.1 while循環(huán)語句循環(huán)語句 5.2 do-while循環(huán)語句循環(huán)語句 5.3 for循環(huán)語句循環(huán)語句 5.4 多重循環(huán)多重循環(huán) 5.5 break語句和語句和continue語句語句 5.6 goto語句和標(biāo)號語句和標(biāo)號 5.7 程序舉例程序舉例 教材上的教材上的第二章第二章2.5中的一部中的一部分分(2.5.5)第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計程序設(shè)計 YYHYYH版版5.1 while循環(huán)語句循環(huán)語句(格式格式1) 1. 格式格式: (a)(b)表達(dá)式當(dāng)表達(dá)式

2、為真循環(huán)體不滿足循環(huán)體滿足圖圖 5.1 while循環(huán)循環(huán) 2. 功功能能圖圖 3. 執(zhí)行過程:先計算執(zhí)行過程:先計算while后面圓括號內(nèi)表達(dá)式的值,后面圓括號內(nèi)表達(dá)式的值,如果其值為如果其值為“真真”(非非0),則,則執(zhí)行語句部分執(zhí)行語句部分(即循環(huán)體即循環(huán)體),然后再計算表達(dá)式的值,并然后再計算表達(dá)式的值,并重復(fù)上述過程,直到表達(dá)式重復(fù)上述過程,直到表達(dá)式的值為的值為“假假”(0)時,循環(huán)結(jié)時,循環(huán)結(jié)束。束。 注意:注意:while循環(huán)中的表達(dá)循環(huán)中的表達(dá)式 一 般 是 關(guān) 系 表 達(dá) 式式 一 般 是 關(guān) 系 表 達(dá) 式 ( 如如i0)個個數(shù)數(shù),求其和。求其和。 starti=1;su

3、m=0;in sum=sum+k; i+;stop讀入n讀入k輸出sumNY圖圖 5.2 求求n個數(shù)的和的個數(shù)的和的程序框圖程序框圖(細(xì)框細(xì)框)輸入輸入處理處理輸出輸出編程粗框三部曲編程粗框三部曲第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計程序設(shè)計 YYHYYH版版#include /#include void main() int i, n, x, sum; i=1; sum=0; /定義計數(shù)定義計數(shù)/累加器累加器 printf(Input:);/coutn; while(ix; sum=sum+x; /循環(huán)求和循環(huán)求和 i+; /循環(huán)計數(shù)循環(huán)計數(shù) printf(nsum is: %dn, s

4、um);/coutendl“sum is:”sumendl; 運(yùn)行結(jié)果:運(yùn)行結(jié)果: Input: 612 34 2 11 9 5sum is: 73解:解:設(shè)計一個計數(shù)變量設(shè)計一個計數(shù)變量/器器i,用以計算循環(huán)的次數(shù),其用以計算循環(huán)的次數(shù),其初始值設(shè)為初始值設(shè)為1,設(shè)計一個求,設(shè)計一個求和變量和變量/累加器累加器sum,初始,初始值值sum=0;在循環(huán)中,每;在循環(huán)中,每輸入一個數(shù)輸入一個數(shù)x就累加上去:就累加上去: sum=sum+x; 注意:注意:程序程序中黑色的為中黑色的為C語言;藍(lán)色的語言;藍(lán)色的為為C+語言。語言。第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計程序設(shè)計 YYHYYH版版例

5、例5.2從鍵盤連續(xù)輸入字符,直到輸入從鍵盤連續(xù)輸入字符,直到輸入“回車回車”符符為止,為止,統(tǒng)計輸入的字符個數(shù)。統(tǒng)計輸入的字符個數(shù)。 startlen=0;(ch=getch()!=/ rstop輸出lenNYlen+圖圖5.3統(tǒng)計統(tǒng)計輸入輸入字符字符的個的個數(shù)的數(shù)的程序程序框圖框圖第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計程序設(shè)計 YYHYYH版版 #include void main() char ch; int len=0; /字符字符計數(shù)變量計數(shù)變量/器初始化器初始化 puts(Type in a sentence, then press n); while (ch=getch()!=

6、r) putchar(ch);/將剛鍵入的字符輸出將剛鍵入的字符輸出 len+; printf(nSentence is %d characters long.n, len); 運(yùn)行結(jié)果: Type in a sentence, then press this is a sentence.Sentence is 19 characters long. 包含空格包含空格賦值表達(dá)式賦值表達(dá)式第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計程序設(shè)計 YYHYYH版版5.2 do-while循環(huán)語句循環(huán)語句(格式格式2) 1. 格式格式 (a)(b)表達(dá)式不滿足滿足直到表達(dá)式為假循環(huán)體循環(huán)體圖圖5.4 do

7、-while循環(huán)循環(huán) 2. 功能圖功能圖 3. 執(zhí)行過程執(zhí)行過程(先執(zhí)行先執(zhí)行后判定后判定) :先執(zhí)行循環(huán)體:先執(zhí)行循環(huán)體中的語句,然后計算表中的語句,然后計算表達(dá)式的值;若表達(dá)式的達(dá)式的值;若表達(dá)式的值為值為“真真”(非非0),則再,則再次執(zhí)行循環(huán)體;如此重次執(zhí)行循環(huán)體;如此重復(fù),直至表達(dá)式的值為復(fù),直至表達(dá)式的值為“假假”(0)時結(jié)束循環(huán)。時結(jié)束循環(huán)。注意:注意:與與while語句語句(先判先判定后執(zhí)行定后執(zhí)行)比較。比較。 例例 5.3 利用利用dowhile語句重做例語句重做例5.1。 do 語句塊語句塊 (即循環(huán)體即循環(huán)體) while (表達(dá)式表達(dá)式); 第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)

8、結(jié)構(gòu)的C程序設(shè)計程序設(shè)計 YYHYYH版版 starti=1;sum=0; sum=sum+k; i+;stop讀入n讀入k輸出sumNYin圖圖5.5求求n個數(shù)和的個數(shù)和的程序框圖程序框圖 #include void main() int i, n, k, sum; i=1; sum=0; printf(Input n: ); scanf(%d, &n); do scanf(%d, &k); sum=sum+k; i+; while(i=n); printf(sum is: %dn, sum); 第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計程序設(shè)計 YYHYYH版版 5.3 f

9、or循環(huán)語句循環(huán)語句 1. 格式:格式: (a)(b)表達(dá)式2不滿足滿足求解表達(dá)式1求解表達(dá)式1當(dāng)表達(dá)式2為真循環(huán)體求解表達(dá)式3循環(huán)體求解表達(dá)式3圖圖5.6 for循環(huán)循環(huán)2. 功能圖功能圖for (表達(dá)式表達(dá)式1; 表達(dá)式表達(dá)式2; 表達(dá)式表達(dá)式3) 語句塊語句塊 (即循環(huán)體即循環(huán)體) 3. 執(zhí)行過程:執(zhí)行過程: (1)首先求解表達(dá)式首先求解表達(dá)式1(一般為一般為對循環(huán)變量賦初值,如對循環(huán)變量賦初值,如i=1)。 (2)求解表達(dá)式求解表達(dá)式2 (一般為判一般為判斷循環(huán)變量超過終值,如斷循環(huán)變量超過終值,如i=50),若其值為,若其值為“真真”(非非0), 則執(zhí)行循環(huán)體中的語句,則執(zhí)行循環(huán)體中

10、的語句,然后執(zhí)行第然后執(zhí)行第(3)步;若為步;若為“假假”(0), 則結(jié)束循環(huán),轉(zhuǎn)則結(jié)束循環(huán),轉(zhuǎn)至第至第(5)步。步。 (3)求解表達(dá)式求解表達(dá)式3 (一般為對一般為對循環(huán)變量確定步長循環(huán)變量確定步長,如如i=i+1)。 (4)至第至第(2)步重復(fù)執(zhí)行。步重復(fù)執(zhí)行。 (5)執(zhí)行執(zhí)行for循環(huán)語句的下一循環(huán)語句的下一語句。語句。第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計程序設(shè)計 YYHYYH版版例如例如: for (i=1; i=50; i+) sum=sum+i; for語句可與語句可與while語句等價:語句等價: 表達(dá)式表達(dá)式1; while (表達(dá)式表達(dá)式2) 語句;表達(dá)式語句;表達(dá)式3

11、;例例 5.4 利用for語句重做例5.1。 include void main() int i, n, k, sum=0; printf(Input n: ); scanf(%d, &n); for (i=1; i=n; i+) scanf(%d, &k); sum=sum+k; printf(sum:%dn, sum); 運(yùn)行結(jié)果:運(yùn)行結(jié)果: Input n: 67 11 20 5 2 19Sum: 64for語句最簡單的應(yīng)用形式,也是最容易理解的形式:語句最簡單的應(yīng)用形式,也是最容易理解的形式: for (循環(huán)變量賦初值循環(huán)變量賦初值; 循環(huán)條件循環(huán)條件; 循環(huán)變量增值循

12、環(huán)變量增值) 語句塊語句塊(循環(huán)體循環(huán)體) 或或+i第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計程序設(shè)計 YYHYYH版版例例 5.5 計算計算1至至50中是中是7的倍數(shù)的數(shù)值之和。的倍數(shù)的數(shù)值之和。 #include void main() int i,sum=0;/定義循變和累加器定義循變和累加器 for (i=1; i=50; i+) if (i%7= =0) sum+=i; printf(sum=%dn, sum);運(yùn)行結(jié)果:運(yùn)行結(jié)果: sum=196 說明說明: 1)表達(dá)式表達(dá)式3的增量的增量(此例為此例為正方向正方向)或減量或減量(負(fù)方向,如此負(fù)方向,如此例可改例可改“for (i=

13、1; i=1; i-)”)與循與循環(huán)變量的初值和終值有關(guān);環(huán)變量的初值和終值有關(guān);2)for語句的循環(huán)次數(shù)是可計算語句的循環(huán)次數(shù)是可計算的,而的,而while語句的循環(huán)次數(shù)一語句的循環(huán)次數(shù)一般是不可計算的般是不可計算的(按條件循環(huán)按條件循環(huán))。 實例實例 見見“VC+實例實例/一般程序一般程序/基本循環(huán)編程基本循環(huán)編程求求a+aa+aaa+”和和“C+級數(shù)級數(shù)(方一循環(huán)方二數(shù)組方一循環(huán)方二數(shù)組)”終值終值 初值初值步長步長+1)循環(huán)次數(shù)循環(huán)次數(shù)=int (比較:比較:對循環(huán)次數(shù)確定對循環(huán)次數(shù)確定的用的用for循環(huán)語句;對循循環(huán)語句;對循環(huán)次數(shù)不確定的用環(huán)次數(shù)不確定的用while循環(huán)語句循環(huán)語句

14、(使用條件使用條件)。第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計程序設(shè)計 YYHYYH版版5.4 多重循環(huán)多重循環(huán)或循環(huán)嵌套或循環(huán)嵌套 當(dāng)一個循環(huán)體內(nèi)又包含另一個完整的循環(huán)結(jié)構(gòu)時,稱為多當(dāng)一個循環(huán)體內(nèi)又包含另一個完整的循環(huán)結(jié)構(gòu)時,稱為多重循環(huán)或循環(huán)嵌套,其循環(huán)結(jié)構(gòu)重循環(huán)或循環(huán)嵌套,其循環(huán)結(jié)構(gòu)可用上述三種循環(huán)語句的任意可用上述三種循環(huán)語句的任意一種。一種。 例如,下面是兩種循環(huán)嵌套的示意圖。例如,下面是兩種循環(huán)嵌套的示意圖。 (1) while ( ) while ( ) (2) for (; ; ) do while( ); 外循環(huán)外循環(huán)內(nèi)循環(huán)內(nèi)循環(huán)(3) for (i=1; ; ) for

15、(j=1; ; ) 第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計程序設(shè)計 YYHYYH版版 說明說明:(1) 循環(huán)嵌套中的各循環(huán)變量不能同名;循環(huán)嵌套中的各循環(huán)變量不能同名; 而并行循環(huán)的循環(huán)變量而并行循環(huán)的循環(huán)變量可同名。可同名。(2) 對對循環(huán)嵌套,當(dāng)內(nèi)循環(huán)循環(huán)完畢時,外循環(huán)才開始下一輪循循環(huán)嵌套,當(dāng)內(nèi)循環(huán)循環(huán)完畢時,外循環(huán)才開始下一輪循環(huán),此時,內(nèi)循環(huán)又從頭開始循環(huán);故內(nèi)循環(huán)的總次數(shù)為內(nèi)環(huán),此時,內(nèi)循環(huán)又從頭開始循環(huán);故內(nèi)循環(huán)的總次數(shù)為內(nèi)外循環(huán)次數(shù)之積。外循環(huán)次數(shù)之積。 for (i=1; ; ) for (j=1; ; ) for (i=1; ; ) for (i=1; ; ) for(

16、i=1;i=10;+i ) for(j=1;j=10;+j ) 外循環(huán)循環(huán)外循環(huán)循環(huán)10次次;內(nèi)循環(huán)內(nèi)循環(huán)循環(huán)循環(huán)10*10=100次。次。第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計程序設(shè)計 YYHYYH版版例例 5.6 輸出如下頁的九九表。輸出如下頁的九九表。 循環(huán)循環(huán)9次輸出次輸出19的表頭的表頭外循環(huán)控制外循環(huán)控制9行行(乘數(shù)乘數(shù)i)內(nèi)循環(huán)控制內(nèi)循環(huán)控制9列列(被乘數(shù)被乘數(shù)j)若是第若是第9列,則換行,否則續(xù)行輸出列,則換行,否則續(xù)行輸出應(yīng)改為應(yīng)改為: include void main()第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計程序設(shè)計 YYHYYH版版i:j:改內(nèi)循環(huán)的初或改內(nèi)循環(huán)

17、的初或終值為外循環(huán)的終值為外循環(huán)的循變的函數(shù)及輸循變的函數(shù)及輸出格式出格式,如如:該內(nèi)該內(nèi)循環(huán)控制語句為循環(huán)控制語句為for(j=1;ji;j+)則為左下三角形。則為左下三角形。實例見實例見“VC+實例實例/一般程序一般程序/基本循環(huán)編程基本循環(huán)編程/九九乘法表九九乘法表”每個元素每個元素值為值為i*j第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計程序設(shè)計 YYHYYH版版 5.5 break語句和語句和continue語句語句 5.5.1 break語句語句 1. 格式格式 :break; 2. 功能:功能:跳出跳出(或終止或終止)它所在的最近的循環(huán)語句或它所在的最近的循環(huán)語句或switch結(jié)構(gòu)

18、。結(jié)構(gòu)。 3. 注意問題:注意問題: (1)break語句只能用于語句只能用于switch結(jié)構(gòu)或循環(huán)結(jié)構(gòu)中,且多和結(jié)構(gòu)或循環(huán)結(jié)構(gòu)中,且多和if語句配用,例在程序中有下列語句:語句配用,例在程序中有下列語句: if () break; 則此時的則此時的if語句一定位于循環(huán)體中或語句一定位于循環(huán)體中或switch結(jié)構(gòu)中,結(jié)構(gòu)中,break語語句跳出的也不是句跳出的也不是if語句,而語句,而是跳出包含此是跳出包含此if語句的循環(huán)結(jié)構(gòu)或語句的循環(huán)結(jié)構(gòu)或switch結(jié)構(gòu)。結(jié)構(gòu)。 第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計程序設(shè)計 YYHYYH版版 (2)在循環(huán)語句嵌套使用的情況下,)在循環(huán)語句嵌套使用的

19、情況下, break語句只能語句只能跳出跳出(或終止或終止)它所在的循環(huán)或它最近的循環(huán)語句它所在的循環(huán)或它最近的循環(huán)語句(有循環(huán)嵌有循環(huán)嵌套時套時),而不能同時跳出,而不能同時跳出(或終止或終止)多層循環(huán),如:多層循環(huán),如: for () for () break; 跳跳至至第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計程序設(shè)計 YYHYYH版版 例例5.7計算計算r=1到到r=10間的圓面積間的圓面積,直到面積直到面積area大于大于100為止。為止。 #define PI 3.1415926#include void main() int r; float area; for (r=1; r1

20、00) break; printf(r: %d area is: %fn, r, area); 運(yùn)行結(jié)果:運(yùn)行結(jié)果: r: 1 area is: 3.1415930r: 2 area is: 12.566370r: 3 area is: 28.274334r: 4 area is: 50.265480r: 5 area is: 78.539818 問題:問題:1、此例實際循環(huán)六次此例實際循環(huán)六次(即計算了六次即計算了六次, 第六次第六次因因area100而跳出循環(huán)而跳出循環(huán)),但輸出了五次。,但輸出了五次。2、若改題若改題為為“計算計算r=1、2、3的圓面積,直到面積的圓面積,直到面積area

21、大于大于100為止為止”則只能用則只能用“while”語句,同學(xué)們自編。語句,同學(xué)們自編。第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計程序設(shè)計 YYHYYH版版 5.5.2 continue語句語句 continue語句的作用是結(jié)束本次循環(huán),即跳過循環(huán)體中下語句的作用是結(jié)束本次循環(huán),即跳過循環(huán)體中下面尚未執(zhí)行的語句,直接進(jìn)行下一次是否執(zhí)行循環(huán)的判定。面尚未執(zhí)行的語句,直接進(jìn)行下一次是否執(zhí)行循環(huán)的判定。 continue語句的一般形式如下:語句的一般形式如下: continue; 其執(zhí)行過程是:終止當(dāng)前這一輪循環(huán),即跳過循環(huán)體中其執(zhí)行過程是:終止當(dāng)前這一輪循環(huán),即跳過循環(huán)體中位于位于continu

22、e后面的語句而立即開始下一輪循環(huán);對于后面的語句而立即開始下一輪循環(huán);對于while和和do-while來講,這意味著立即執(zhí)行條件測試部分,而對于來講,這意味著立即執(zhí)行條件測試部分,而對于for語句來講,則意味著立即求解表達(dá)式語句來講,則意味著立即求解表達(dá)式3。 第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計程序設(shè)計 YYHYYH版版例例5.8輸出輸出100到到150之間不能被之間不能被3整除的數(shù)整除的數(shù), 要要求一行輸出求一行輸出10個數(shù)。個數(shù)。#include void main() int n, i=0; for (n=100; n=150; n+) if (n%3= =0) continu

23、e; printf(%4d, n); i+; /每行的列數(shù)計數(shù)每行的列數(shù)計數(shù) if (i%10= =0) printf (n); 運(yùn)行結(jié)果:運(yùn)行結(jié)果: 100 101 103 104 106 107 109 110 112 113115 116 118 119 121 122 124 125 127 128130 131 133 134 136 137 139 140 142 143145 146 148 149 if (n%30) printf(%4d, n); i+; /每行的列數(shù)計數(shù)每行的列數(shù)計數(shù) if (i%10=0) printf (n); 等等 價價第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的

24、C程序設(shè)計程序設(shè)計 YYHYYH版版 5.6 goto語句和標(biāo)號語句和標(biāo)號 goto語句為無條件轉(zhuǎn)向語句,程序中使用goto語句時要求和標(biāo)號配合, 它們的一般形式為 goto 標(biāo)號標(biāo)號; 標(biāo)號標(biāo)號: 語句;語句; C語言規(guī)定,goto語句的使用范圍僅局限于函數(shù)內(nèi)部,不允許在一個函數(shù)中使用goto語句把程序控制轉(zhuǎn)移到其它函數(shù)之內(nèi)。 一般來講,goto語句可以有兩種用途: (1) 與if語句一起構(gòu)成循環(huán)結(jié)構(gòu)。 (2) 退出多重循環(huán)。 例:例:goto label1; label1: 語句;語句;第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計程序設(shè)計 YYHYYH版版 5.7 程程 序序 舉舉 例例 例

25、例 5.9 用公式用公式 求出求出的近似值,的近似值, 直到最后一項的絕對值小于直到最后一項的絕對值小于10-6為為止。具體程序如下:止。具體程序如下: #include #include void main() int s; /定義每項的變量定義每項的變量 float n, t, pi; /定義每項:定義每項:n-每項分母;每項分母;t-每項;每項;pi- t=1;pi=0;n=1.0;s=1; /初始化初始化71513114第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計程序設(shè)計 YYHYYH版版 while (fabs(t)=1e-6) /當(dāng)每項的絕對值不小于當(dāng)每項的絕對值不小于10-6時循環(huán)

26、處理時循環(huán)處理 pi=pi+t; /累加下一項累加下一項 n=n+2; /準(zhǔn)備下一項分母準(zhǔn)備下一項分母 s=-s; /準(zhǔn)備下一項的符號準(zhǔn)備下一項的符號 t=s/n; /求出下一項求出下一項t pi=pi*4; /求出求出 printf(“pi=%10.6fn”,pi); 運(yùn)行結(jié)果:運(yùn)行結(jié)果: pi= 3.141594 實例見實例見“VC+實例實例一般程序一般程序C+應(yīng)用舉例應(yīng)用舉例(雙重循環(huán)雙重循環(huán))”下的下的“c+雙雙重循環(huán)求素數(shù)重循環(huán)求素數(shù)”和和“雙重循環(huán)求完雙重循環(huán)求完數(shù)數(shù)”問題:問題:1、 pi=pi+t; 和和n=n+2; 順序調(diào)換可否?順序調(diào)換可否?2、 s=-s; 和和t=s/n

27、;順序順序調(diào)換可否?調(diào)換可否?第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計程序設(shè)計 YYHYYH版版例例 5.10 從鍵盤輸入一個大于從鍵盤輸入一個大于2的整數(shù)的整數(shù)n,判斷,判斷n是不是是不是素數(shù)。素數(shù)。 #include #include void main() int n, k, i, flag=0; /定義是否素數(shù)標(biāo)志定義是否素數(shù)標(biāo)志 do/保證保證(反復(fù)反復(fù))輸入大于輸入大于2的整數(shù)的整數(shù)n printf(Input a number: ); scanf(%d, &n); while(n=2); k=sqrt(double)n); /取其浮點數(shù)的平方根取其浮點數(shù)的平方根 fla

28、g=1; /設(shè)為素數(shù)的標(biāo)志設(shè)為素數(shù)的標(biāo)志 for (i=2; i=k; i+) /從從2到到k循環(huán)判斷是否有整除循環(huán)判斷是否有整除素數(shù)的定義:素數(shù)的定義:某某個整數(shù)個整數(shù)n是素數(shù),是素數(shù),則它不能被則它不能被2至至 n 整除。整除。n為整數(shù);為整數(shù);k為循環(huán)上為循環(huán)上界;界;i為循環(huán)變量;為循環(huán)變量;第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計程序設(shè)計 YYHYYH版版if (n%i= =0) flag=0; break; /* 有一數(shù)能整除就不是素數(shù)有一數(shù)能整除就不是素數(shù),不再循環(huán)不再循環(huán) */ if (flag) /等價于等價于“flag=1” printf(%d is a prime nu

29、mber.n, n); else printf(%d is not a prime number.n, n); 運(yùn)行結(jié)果:運(yùn)行結(jié)果: Input a number: 3535 is not a prime number. 注意:注意:初始設(shè)素數(shù)標(biāo)志為是素初始設(shè)素數(shù)標(biāo)志為是素數(shù)數(shù)(flag=1;)好處理;若設(shè)好處理;若設(shè)素數(shù)素數(shù)標(biāo)志為不是素數(shù)標(biāo)志為不是素數(shù)(flag=0;)不好不好處理處理(因要判定都不能整除因要判定都不能整除)。第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計程序設(shè)計 YYHYYH版版 例例 5.11 用牛頓迭代法求方程用牛頓迭代法求方程2x3- -4x2+3x- -6=0的根的根,

30、要,要求誤差小于求誤差小于10- -5。 從圖5.7可以看出: )/()()( 1kkkkxxxfxf因此, )( / )(1kkkkxfxfxx令f(x)=2x3-4x2+3x-6可寫成以下形式: f(x)=(2x-4)x+3)x-6 第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計程序設(shè)計 YYHYYH版版圖 5.7 用牛頓迭代法求方程的根 -3-2-10100200Y-100 xk+2x*xk+1xkf(xk+1)xf(xk)f(x)第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計程序設(shè)計 YYHYYH版版 具體程序如下: #include #include void main() float x, x0, f,

溫馨提示

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

最新文檔

評論

0/150

提交評論