單重循環(huán)應(yīng)用課件_第1頁
單重循環(huán)應(yīng)用課件_第2頁
單重循環(huán)應(yīng)用課件_第3頁
單重循環(huán)應(yīng)用課件_第4頁
單重循環(huán)應(yīng)用課件_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、重慶郵電大學(xué)計算機科學(xué)與技術(shù)學(xué)院馮 瀟單重循環(huán)程序設(shè)計2022/9/221分為if和ifelse兩種if形式: if(表達(dá)式) 語句;ifelse形式 if(表達(dá)式) 語句1; else 語句2;根據(jù)表達(dá)式的值為0或非0決定程序執(zhí)行流向利用if-else語句構(gòu)建分支結(jié)構(gòu)模塊1模塊2條件YN模塊1模塊2條件YN2022/9/22格式if-else的嵌套2022/9/22格式:多分支處理語句switchswitch(表達(dá)式) case 常量表達(dá)式1:語句1 ;break; case 常量表達(dá)式2:語句2 ;break; case 常量表達(dá)式n:語句n ;break; default:語句n+1 說

2、明:switch語句后表達(dá)式的值可以是整型、字符型、枚舉型2022/9/22重點 & 難點循環(huán)的3種表示方法窮舉法、遞推法和迭代法算法的掌握經(jīng)典問題的求解辦法2022/9/22高斯問題編寫程序求解1+2+3+97+98+99+100分析算法思想:累加求和Step1、定義被加數(shù)i1、累加求和量sum0Step2、當(dāng)i=100時,執(zhí)行sum += i; i+= 1;Step3、輸出sum2022/9/22當(dāng)型循環(huán)A真假假條 件P當(dāng)P為真A當(dāng)P為真A2022/9/22直到型循環(huán)條 件PA假真直到P為假A直到P為假A2022/9/22循環(huán)結(jié)構(gòu)控制語句1-whilewhile循環(huán)格式: while(表達(dá)

3、式) 循環(huán)體 A真假假條 件P2022/9/22while語句求解高斯問題int main() int i = 1,sum = 0; while(i = 100) sum += i; /*實現(xiàn)累加求和*/ i += 1; /*i+;*/ printf(“sum is %d”,sum); return 0;i=1,sum=0輸出sumsum+=1;當(dāng)i=100i+;2022/9/22do-while循環(huán)格式: do 循環(huán)體 while(表達(dá)式);循環(huán)結(jié)構(gòu)控制語句2do-while條 件PA假真2022/9/22do-while求解高斯問題int main() int i=1,sum=0; do

4、sum+=i; i+; while(i100sum+=1;i+;2022/9/22for求解高斯問題#include int main() int i=1,sum=0; for(;i=100;i+) sum += i; printf(“sum is %d”,sum); return 0;#include void main() int i=1,sum=0; for(;i=100;sum += i,i+); printf(“sum is %d”,sum);for(;i=100;i+, sum += i)2022/9/22三種循環(huán)結(jié)構(gòu)的比較與for語句等價的while語句形式: 表達(dá)式1 whil

5、e(表達(dá)式2) 循環(huán)體語句 表達(dá)式3 2022/9/22累加器、累乘器的設(shè)計累加器int i ,sum=0;for(i=1;i=100;i+) sum += i;累乘器int i ;double sum=1;for(i=1;i=100;i+) sum *= i;2022/9/22猜數(shù)游戲先由計算機“想”一個1到100之間的數(shù)請人猜,如果人猜對了,則結(jié)束游戲,并在屏幕上輸出人猜了多少次才猜對此數(shù),以此來反映猜數(shù)者“猜”的水平,否則計算機給出提示,告訴人所猜的數(shù)是太大還是太小,直到人猜對為止。分析:本題的難點在于如何讓計算機“想”一個數(shù)隨機函數(shù)rand()產(chǎn)生一個0RAND_MAX之間的整數(shù)。該函

6、數(shù)定義于頭文件中RAND_MAX是定義在頭文件中的常量,其值不得大于雙字節(jié)整數(shù)的最大值327672022/9/22猜數(shù)游戲用到的庫函數(shù)怎樣模擬計算機“想”一個數(shù)呢?隨機函數(shù)rand()產(chǎn)生0,RAND_MAX 之間的隨機數(shù)magic = rand(); #include RAND_MAX在stdlib.h中定義,不大于雙字節(jié)整數(shù)的最大值32767 產(chǎn)生0,b-1 之間的隨機數(shù)magic = rand() % b;產(chǎn)生a,a+b-1 之間的隨機數(shù)magic = rand() % b + a; 2022/9/22#include #include void main() int magic; in

7、t guess ; int counter; /*記錄人猜次數(shù)的計數(shù)器變量*/magic = rand() % 100 + 1; counter = 0; /*計數(shù)器變量count初始化為0*/doprintf(Please guess a magic number:);scanf(%d, &guess); counter +; /*計數(shù)器變量count加1*/if (guess magic) printf(Wrong! Too high!n);else if (guess b,循環(huán)找出第一個i滿足a*i % b = 0,循環(huán)找出一個i滿足a % i = 0 & b % i = 0 采用算法二

8、:迭代法算法關(guān)鍵步驟:使ab,由于a = k*b + r,設(shè)m是a和b的最大公約數(shù),那么m也是b和r的最大公約數(shù),如此遞推,直到余數(shù)r為02022/9/22解法一 窮舉法#includevoid main() int m,n,i; scanf(%d,%d,&m,&n); printf( Please input m,n:); for(i = m;(m % i != 0)| (n % i != 0);i-) ; printf(gcd = %dn,i); printf(lcm = %dn,m*n/i); 2022/9/22窮舉法鞏固找出200300之間所有能被3整除的數(shù)2022/9/22算法一#include void main() int i; for(i = 200;i = 300;i+) if(i % 3 = 0) printf(“%dn”,i); else continue; 2022/9/22算法二#inc

溫馨提示

  • 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

提交評論