升本課件-語言第5章_第1頁
升本課件-語言第5章_第2頁
升本課件-語言第5章_第3頁
升本課件-語言第5章_第4頁
升本課件-語言第5章_第5頁
已閱讀5頁,還剩77頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第5章循環(huán)結構程序設為什么需要循環(huán)控用while語句實現循用do---while語句實現循用for語句實現循循環(huán)的嵌幾種循環(huán)的比改變循環(huán)執(zhí)行的狀循環(huán)程序舉5.1為什么需要循環(huán)控5.1為什么需要循環(huán)控要向計算機輸入全班50個學生的成分別統計全班50個學生的平均成求30教師檢查30個學生的成績是否及5.1為5.1為什么需要循環(huán)控輸入學生2的三門課成績,并計算平均值要對50個學生進行相同操作重復50大多數的應用程序都會包含循環(huán)結5.2用while語句實現循5.2用while語句實現循NNY輸入一個學生成輸出一個學生平均成i增求一個學生平均用while循環(huán)結構實{scanf……;aver=……;printf……;}whilewhile語句的一般形式如下while表達式語循環(huán)while表達式語循環(huán)條件表達while循環(huán)的特點是先判斷條件表達式,后執(zhí)行循環(huán)體語例5.1求1+2+3+…+100解題思路

n這是累加問題,需要先后將100個數相要重復100次加法運算,可用循環(huán)實后一個數是前一個數加1而加完上一個數i后,使i加1可得到下一個#include#includeintreturnreturn}{inti=1,sum=0;while

不能 } }{inti=1,sum=0;while }

不能丟,否則循環(huán)永不結5.3用5.3用do---while語句實現循do---while語句的特點:先無條件地行循環(huán)體,然后判斷循環(huán)條件是否成do---while語句的一般形式為表達表達N循環(huán)體語while(表達式Y5.3用5.3用do---while語句實現循例5.2用do…while語句求1+2+3+…+100, 5.3用do---while語句實現循解題思路YiNYiN{#include<stdio.h>intmain(){inti=1,sum=0;{return0;}例5.3while和do---while循環(huán)的比較nrnr{}當whil后面的表達式的第一次的值為“真”時,兩種循環(huán)得到的結果相同;否則不相同{5.45.4用for語句實現循for語句完全可以代替while語5.45.4用for語句實現循iY輸出NforiY輸出N{printf("%d",i}5.45.4用for語句實現循for語句的一般形式語設置初始條件,只執(zhí)行語設置初始條件,只執(zhí)行5.45.4用for語句實現循for語句的一般形式for(表達式1;表達式2;表達式語5.45.4用for語句實現循for語句的一般形式for(表達式1;表達式2;表達式語執(zhí)行完循環(huán)體后才進行5.45.4用for語句實現循for語句的執(zhí)行過先求解表達式求解表達式轉回上面步驟(2)繼續(xù)執(zhí)循環(huán)結束,執(zhí)行for語句下面的一個語5.45.4用for語句實現循用for用for語句更簡單、方等價{}5.45.4用for語句實現循for(表達式1;表達式2;表達式語表達式均可以省5.45.4用for語句實現循for(sum=0;i<=100;5.45.4用for語句實現循for(sum=0,i=1;i<=100;i++,j-i++,j-

; 5.45.4用for語句實現循for(i=0;(c=getchar())!=’\n′;;合 ;(c=getchar())!=’\n’; 合5.55.5一個循環(huán)體內又包含另一個完整的循結構,稱為循環(huán)的嵌3種循環(huán)(while循環(huán)、do…while循環(huán)for循環(huán))可以互相嵌5.65.6一般情況下,3種循環(huán)可以互相代5.75.7用break語句提前終止循用continue語句提前結束本次循break語句和continue語句的區(qū)5.7.15.7.1用break語句提前終止循例5.4在全系1000學生中,征集慈善編程思路循環(huán)次數不確定,但最多循環(huán)1000在循環(huán)體中累計捐款總用if語句檢查是否達到10萬如果達到就不再繼續(xù)執(zhí)行循環(huán),終止累計算人均捐款編程思路變量amount,用來存放捐變量total,用來存放累加后的總捐款變量aver,用來存放人均捐定義符號常量SUM代表#include<stdio.h>#include<stdio.h>#defineSUM100000returnreturn}int

指定符號常量SUM代表{floatamount,aver,total; inti;for(i=1,total=0;i<=1000;i++){printf("pleaseenteramount:");total=total+amount;if(total>=SUM)break;}aver=total/i #include<stdio.h>#define#include<stdio.h>#defineSUM100000intmain()returnreturn}{floatamount,aver,total; inti;for(i=1,total=0;i<=1000;i++){printf("pleaseentertotal=total+amount;if(total>=SUM)break;}

應該執(zhí)行1000aver=total/i {floatamount,aver,total; inti;for(i=1,total=0;i<=1000;i++){printf("pleaseenteramount:");total=total+amount;if(total>=SUM)break;}aver=total/i

達到10萬,提前結束循 {floatamount,aver,tofor(i=1,total=0;i<={printf("pleaseentetotal=total+amount;if(total>=SUM)break;}aver=total/i

實際捐款人 {floatamount,aver,total; inti;for(i=1,total=0;i<=1000;i++){printf("pleaseenteramount:");total=total+amount;if(total>=SUM)break;};aver=total/;

5.7.25.7.2用continue語句提前結束本次循例5.5要求輸出100~200之間的不能編程思路對100到200之間的每一個整數進行如果不能被3整除,輸出,否則不{ifprintf("%d",n);}nn能被3整YN輸出5.7.35.7.3break語句和continuebreak語句 continue語句表達式表達式YN表達式NY強行退出循表達式YN表達式NY只結束本次循例5.6輸出以下4*5的矩陣 8 912 81216解題思路可以用循環(huán)的嵌套來處理此問用外循環(huán)來輸出一行數用內循環(huán)來輸出一列數按矩陣的格式(每行5個數據)輸#include#includeintreturnreturn}{intfor

累計輸出數據的forifif(n%5==0)printfprintf}

控制一出5個數{int

雙重循forforfor{if(n%5==0)printfprintf}{intfor控制輸出4forfor{if(n%5==0)printfprintf}{intfor

forfor{if(n%5==0)printfprintf}{intfor

for{if(n%5==0)printfprintf}

j由1變到i*j的值是returnreturn}dintd{intfor

for{if(n%5==0)printfprintf}

j也由1變到i*j的值是return}return}#include<intmain(){intforfor{if(n%5==0)printf(“\n”);if(i==3&&j==1)break;printf("%d\t",i*j);}

return}return}einte

for{if(n%5==0)printf(“\n”);if(i==3&&j==1)continue;printf("%d\t",i*j);}5.85.8循環(huán)程序舉例5.7

111

公式近似值,直到發(fā)現某一項的絕對值小10-6為止(該項不累計加)5.85.8循環(huán)程序舉解題思路

近似值的方法很多,本題是一其他方法721

1 n222

44

6

(n 1

3

5

n(n5.85.8循環(huán)程序舉1111 每項的分子都是后一項的分母是前一項的分母加 n5.85.8循環(huán)程序舉當term≥10-sing=-輸出#include<stdio.h>#include<math.h>intmain()#include<stdio.h>#include<math.h>intmain(){intsign=1;doublereturnreturn}{pi=pi+term;

求絕對值的函}

只保證前5位小數是準確{pi=pi+term;

改為1e-}例5.8求費波那西(Fibonacci)數列的

(nF

(nF

(n n n2這是一個有趣的古典數學問題小兔子長到第3個月后每個月又生一對兔子個總11001201052125632387535┇┇┇┇┇輸出Fori=1to輸出#include#includeint{intf1=1,f2=1,f3;inti;for(i=1;i<=38;i++){}return}

代碼可改 #include#includeint{intf1=1,f2=1;inti;for(i=1;i<=20;i++){printf("%12d%12dif(i%2==0)ffff解題思路讓n被i整除(i的值從2變到n-如果n能被2~(n-1)之中任何一個整數注意:此時i的值必然小于輸入i≤n-1 Yn被i整NY輸出不是素

i

輸出是素#include#includeintreturnreturn}{intprintf(“n=?");for(i=2;i<=n-1;i++)if(n%i==0)break;if(i<n)printf("%disnot\n",n);elseprintf("%dis\n",n);n{intnprintf(“n=?");for(i=2;i<=n-1;i++)if(n%i==0)break;

if(i<n)printf("%disnot\n",n);elseprintf("%dis\n",n);#include#includereturnreturn}int{int

#includeprintf(“n=?");for(i=2;i<=k;i++)if(n%i==0)break;

if(i<n)printf("%disnot\n",n);elseprintf("%dis\n",n);returnreturn}#includeint{int

#includeprintf(“n=?");for(i=2;i<=k;i++)if(n%i==0)break;

if(i<=k)printf("%disnot\n",n);elseprintf("%dis\n",n);例5.10求100~200間的全部素數解題思路使用例5.9的算在例5.9程序中只要增加一個外循環(huán),先后100~200間的全部整數一一進行判只對只對奇數進行檢{forif(n%i==0)break;if(i>=k+1){printf("%d控制控制每行輸出10個數}if(m%10==0)}例5.11譯。為使電文,往往按一定規(guī)律將其轉換成,收再按約ABCDEFG……WXY非字母字符保持原狀不輸入一行字符,要求輸出其相應的字字母。如果在’W’到’Z’的范圍內,則換為A~D(或a~d)之一的字母解題思路:問題的關鍵有兩個(1)決定哪些字符不需要改變,哪些字符需,改變,如果需要,

字字母。如果在’W’到’Z’的范圍內,則換為A~D(或a~d)之一的字母解題思路:問題的關鍵有兩個(1)決定哪些字符不需要改變,哪些字符需要if((c>='a'&&c<='z')||(c>='A'&& 先判定它是否字母(包括大小寫),若不是字解題思路:問題的關鍵有兩個字字母。如果在’W’到’Z’的范圍內,則換為A~D(或a~d)之一的字母if(c>='W'&&c<='Z'||c>='w'&&c<='

溫馨提示

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

評論

0/150

提交評論