第6講 循環(huán)結(jié)構(gòu)(1)_第1頁
第6講 循環(huán)結(jié)構(gòu)(1)_第2頁
第6講 循環(huán)結(jié)構(gòu)(1)_第3頁
第6講 循環(huán)結(jié)構(gòu)(1)_第4頁
第6講 循環(huán)結(jié)構(gòu)(1)_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、/第六講 循環(huán)結(jié)構(gòu)(一)趙歡歡計(jì)算機(jī)與信息工程學(xué)院/學(xué)習(xí)目標(biāo) 了解循環(huán)的概念 掌握使用循環(huán)的方法 掌握使用while 和do-while語句實(shí)現(xiàn)次數(shù)不確定的循環(huán) 了解while 和do-while語句有什么不同/循環(huán)結(jié)構(gòu) 在許多問題中需要用到循環(huán)控制。例如: 要輸入全校學(xué)生成績; 求若干個數(shù)之和及階乘; 幾乎所有實(shí)用的程序都包含循環(huán)。循環(huán)結(jié)構(gòu)是結(jié)構(gòu)化程序三種基本結(jié)構(gòu)之一,它和順序結(jié)構(gòu)、選擇結(jié)構(gòu)共同作為各種復(fù)雜程序的基本構(gòu)造單元。/ 實(shí)現(xiàn)循環(huán)的幾個語句 for語句語句 while語句語句 dowhile語句語句 goto語句和if語句構(gòu)造循環(huán)循環(huán)結(jié)構(gòu)/循環(huán)結(jié)構(gòu)6.1 用格里高利公式求的近似值 (

2、while語句)6.2 統(tǒng)計(jì)一個整數(shù)的位數(shù) (do-while語句)/用格里高利公式求的近似值例6-1使用格里高利公式求的近似值,要求精確到最后一項(xiàng)的絕對值小于104。6.1.1 程序解析6.1.2 while語句 6.1.3 輸入一批學(xué)生的成績,統(tǒng)計(jì)平均分11114357/#include int main(void) int denominator, flag; double item, pi; flag = 1; denominator = 1 ; item = 1.0; pi = 0; while(fabs (item) = 0.0001) item = flag * 1.0 / de

3、nominator; pi = pi + item; flag = -flag; denominator = denominator +2; pi = pi * 4; printf ( “pi = %fn”, pi); return 0;6.1.1 程序解析求的近似值pi = 3.141613 item=0.0 ?fabs(item) 0.0001/6.1.2 while 語句形式:while (表達(dá)式) 循環(huán)體語句; 真真假假while下一條語句下一條語句表達(dá)式表達(dá)式循環(huán)體語句循環(huán)體語句循環(huán)條件循環(huán)條件循環(huán)體循環(huán)體一條語句一條語句/while 語句和for語句都是在循環(huán)前先判斷條件while

4、 語句說明表達(dá)式表達(dá)式1;while (表達(dá)式表達(dá)式2) for的循環(huán)體語句的循環(huán)體語句; 表達(dá)式表達(dá)式3;/循環(huán)語句不止一條時,要加循環(huán)語句不止一條時,要加 ,否則否則while執(zhí)行的循環(huán)只到第一個執(zhí)行的循環(huán)只到第一個語句位置。語句位置。把把for語句改寫成語句改寫成while語句語句for(表達(dá)式表達(dá)式1; 表達(dá)式表達(dá)式2; 表達(dá)式表達(dá)式3) 循環(huán)體語句循環(huán)體語句/while 和 for 的比較/求前10個數(shù)的和#include “stdio.h”int main()int sum=0;int i=1;for (i = 1; i = 10; i+) sum = sum + i; print

5、f(“sum=%d”,sum); /求前n項(xiàng)的平方和如何實(shí)現(xiàn)?/求前10個數(shù)的和 #include “stdio.h”int main()int sum=0;int i=1; i = 1; / 循環(huán)變量賦初值循環(huán)變量賦初值while (i = 10) / 循環(huán)條件循環(huán)條件 sum = sum + i; i+; / 循環(huán)變量的改變循環(huán)變量的改變printf(“sum=%d”,sum); /例6-2 從鍵盤輸入一批學(xué)生的成績,計(jì)算平均分。分析: 求累加和 確定循環(huán)條件 不知道輸入數(shù)據(jù)的個數(shù),無法事先確定循環(huán)次數(shù) 用一個特殊的數(shù)據(jù)作為正常輸入數(shù)據(jù)的結(jié)束標(biāo)志,比如選用一個負(fù)數(shù)作為結(jié)束標(biāo)志。統(tǒng)計(jì)輸入的一

6、批學(xué)生的平均成績#include Int main(void) int num; double grade, total; num = 0; total = 0;printf(“Enter grades: n); scanf(%lf, &grade); /* 輸入第1個數(shù)*/while (mark = 0) /* 輸入負(fù)數(shù),循環(huán)結(jié)束 */ total = total + grade; num+; scanf (“%lf”, &grade);if(num != 0) printf(“Grade average is %.2fn, total/num);else printf( Grade ave

7、rage is 0n); return 0;Enter grades: 67 88 73 54 82 -1Grade average is 72.80Enter grades: -1 67 88 73 54 82Grade average mark is/6.2 統(tǒng)計(jì)一個整數(shù)的位數(shù)從鍵盤讀入一個整數(shù),統(tǒng)計(jì)該數(shù)的位數(shù)。例如;輸入:12345,輸出5;輸入-123,輸出3。6.2.1 程序解析6.2.2 do - while語句 6.2.3 循環(huán)語句的選擇/int main(void) int count, number; count = 0;printf(“Enter a number: );s

8、canf (%d, &number) ;if (number 0) number = -number; do number = number / 10; count +; while (number != 0);printf(It contains %d digits.n, count); return 0;程序解析統(tǒng)計(jì)一個整數(shù)的位數(shù)Enter a number: 12534It contains 5 digits.Enter a number: -99It contains 2 digits.Enter a number: 0It contains 1 digits.while (numbe

9、r != 0) number = number / 10; count +;/6.2.2 do - while 語句do 循環(huán)體語句 while (表達(dá)式) ) /*本行的分號不能缺省本行的分號不能缺省*/循環(huán)體至少執(zhí)行一次循環(huán)體至少執(zhí)行一次先循環(huán)先循環(huán)后判斷后判斷真真假假表達(dá)表達(dá)式式循環(huán)體語句循環(huán)體語句do-while的下一條語句的下一條語句/ while 是先判別條件,再決定是否循環(huán); do-while 是先至少循環(huán)一次,然后再根據(jù)循環(huán)的結(jié)果決定是否繼續(xù)循環(huán)。while 和 do-while 的比較真真假假表達(dá)式表達(dá)式循環(huán)體語句循環(huán)體語句do-while的下一條語句的下一條語句真真假假wh

10、ile的下一條語句的下一條語句表達(dá)式表達(dá)式循環(huán)體語句循環(huán)體語句/#include main()int i;int sum=0;scanf(“%d”,&i);while(i=10) sum+=i;i+;printf(“sum=%dn”,sum);/while循環(huán)while 和 do-while 的比較#include main()int i;int sum=0;scanf(“%d”,&i);do sum+=i;i+; while(i=10);printf(“sum=%d”,sum);/dowhile循環(huán)/6.2.3 循環(huán)語句的選擇if(循環(huán)次數(shù)已知) 使用for語句else /* 循環(huán)次數(shù)未知 */if (循環(huán)條件在進(jìn)入循環(huán)時明確)使用while語句else /* 循環(huán)條件需要在循環(huán)體中明確 */使用do-while語句/幾種循環(huán)的比較:1while和do-whi1e循環(huán),只在while后面指定循環(huán)條件,在循環(huán)體中包含應(yīng)反復(fù)執(zhí)行的操作語句,包括使循環(huán)趨于結(jié)束的語句(如i,或i+=1等)。 for循環(huán)可以在表達(dá)式3中包含使循環(huán)趨于結(jié)束的操作,甚至可以將循環(huán)體中的操作全部放到表達(dá)式3中,因此for語句的功能更強(qiáng),凡用while循環(huán)能完成的,用for循環(huán)都能實(shí)現(xiàn)。/2.用whi

溫馨提示

  • 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

提交評論