C言語課件-第5章 循環(huán)結構程序設計

上傳人:san****019 文檔編號:22319290 上傳時間:2021-05-24 格式:PPT 頁數(shù):49 大?。?.52MB
收藏 版權申訴 舉報 下載
C言語課件-第5章 循環(huán)結構程序設計_第1頁
第1頁 / 共49頁
C言語課件-第5章 循環(huán)結構程序設計_第2頁
第2頁 / 共49頁
C言語課件-第5章 循環(huán)結構程序設計_第3頁
第3頁 / 共49頁

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《C言語課件-第5章 循環(huán)結構程序設計》由會員分享,可在線閱讀,更多相關《C言語課件-第5章 循環(huán)結構程序設計(49頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、第 5章 循 環(huán) 結 構 程 序 設 計 本 章 要 點 5.1 概 述5.2 goto語 句 以 及 用 goto語 句 構 成 循 環(huán)5.3 用 while語 句 實 現(xiàn) 循 環(huán)5.4 用 do-while語 句 實 現(xiàn) 循 環(huán)5.5 用 for 語 句 實 現(xiàn) 循 環(huán) 5.6 循 環(huán) 的 嵌 套5.7 幾 種 循 環(huán) 的 比 較5.8 break語 句 continue和 語 句5.9 程 序 舉 例主 要 內(nèi) 容 5.1 概 述 什 么 是 循 環(huán) ?為 什 么 要 使 用 循 環(huán) ?1001ny n問 題 1:問 題 2: 在 許 多 問 題 中 需 要 用 到 循 環(huán) 控 制 。

2、循 環(huán) 結 構 是 結構 化 程 序 設 計 的 基 本 結 構 之 一 , 它 和 順 序 結 構 、 選擇 結 構 共 同 作 為 各 種 復 雜 程 序 的 基 本 構 造 單 元 。 5.2 goto語 句 及 用 goto語 句 構 成 循 環(huán) goto語 句 為 無 條 件 轉 向 語 句 , 它 的 一 般 形 式 為 goto 語 句 標 號 ; 語 句 標 號 用 標 識 符 表 示 , 它 的 定 名 規(guī) 則 與 變 量 名 相同 , 即 由 字 母 、 數(shù) 字 和 下 劃 線 組 成 , 其 第 一 個 字 符必 須 為 字 母 或 下 劃 線 。 例 如 : goto

3、label_1; 合 法 ; goto 123; 不 合 法 . 5.2 goto語 句 及 用 goto語 句 構 成 循 環(huán) 結 構 化 程 序 設 計 方 法 主 張 限 制 使 用 goto語 句 , 因 為濫 用 goto語 句 將 使 程 序 流 程 無 規(guī) 律 、 可 讀 性 差 。一 般 來 說 , 可 以 有 兩 種 用 途 :( 1) 與 if語 句 一 起 構 成 循 環(huán) 結 構 ;( 2) 從 循 環(huán) 體 中 跳 轉 到 循 環(huán) 體 外 。 但 是 這 種 用 法 不 符 合 結 構 化 原 則 , 一 般 不 宜 采 用 ,只 有 在 不 得 已 時 (例 如 能 大

4、 大 提 高 效 率 )才 使 用 。 5.2 goto語 句 及 用 goto語 句 構 成 循 環(huán)例 5.1 用 if語 句 和 goto語 句 構 成 循 環(huán) , 求 1到 100的 和void main( ) int i, sum=0; i=1; loop:if(i=100) sum=sum+i; i+; goto loop; printf(%dn”,sum); 1001n n 說 明 : 這 里 用 的 是 “ 當 型 ” 循環(huán)結 構 , 當 滿 足 “ i=100” 時 執(zhí)行 花 括 弧 內(nèi) 的 循 環(huán) 體 。 運 行 結 果 : 5050 while語 句 用 來 實 現(xiàn) “ 當

5、 型 ” 循 環(huán) 結 構 。一 般 形 式 : while (表 達 式 ) 語 句 當 表 達 式 為 非 0值 ( 即 為 真 ) 時 , 執(zhí) 行 while語 句中 的 內(nèi) 嵌 語 句 。 其 特 點 是 : 先 判 斷 表 達 式 , 后 執(zhí) 行 語 句 。5.3 用 while語 句 實 現(xiàn) 循 環(huán) 5.3 用 while語 句 實 現(xiàn) 循 環(huán)例 5 .2 求 1 到 1 0 0 的 和#include void main() int i,sum=0 ; i=1 ; while (i=1 0 0 ) sum=sum+i; i+; printf(“%dn”,sum); 說 明 :( 1

6、) 循 環(huán) 體 如 果 包 含 一 個 以 上的 語 句 , 應 該 用 花 括 弧 括 起來 , 以 復 合 語 句 形 式 出 現(xiàn) ;( 2) 在 循 環(huán) 體 中 應 有 使 循 環(huán) 趨向 于 結 束 的 語 句 。 運 行 結 果 : 5050 5.3 用 while語 句 實 現(xiàn) 循 環(huán)注 意 :( 1) 循 環(huán) 體 如 果 包 含 一 個 以 上 的 語 句 , 應 該 用 花 括弧 括 起 來 , 以 復 合 語 句 形 式 出 現(xiàn) 。 ( 2) 在 循 環(huán) 體 中 應 有 使 循 環(huán) 趨 向 于 結 束 的 語 句 。 如果 無 此 語 句 , 則 i的 值 始 終 不 改 變

7、, 循 環(huán) 永 不 結束 。 死 循 環(huán) 5.4 用 do-while語 句 實 現(xiàn) 循 環(huán)do-while語 句 的 特 點 :先 執(zhí) 行 循 環(huán) 體 , 然 后 判 斷 循 環(huán)條 件 是 否 成 立 。一 般 形 式 : do 循 環(huán) 體 語 句 while (表 達 式 );執(zhí) 行 過 程 : 先 執(zhí) 行 一 次 指 定 的 循 環(huán) 體 語 句 , 然 后 判 別 表 達式 , 當 表 達 式 的 值 為 非 零 (“ 真 ” ) 時 , 返 回 重新 執(zhí) 行 循 環(huán) 體 語 句 , 如 此 反 復 , 直 到 表 達 式 的值 等 于 0( 即 假 ) 為 止 , 此 時 循 環(huán) 結

8、束 。 5.4 用 do-while語 句 實 現(xiàn) 循 環(huán)例 5.3 求 1到 100的 和#include void main() int i,sum=0; i=1; do sum=sum+i; i+; while(i=100); printf(%dn”,sum); 運 行 結 果 : 5050 1001n n 5.4 用 do-while語 句 實 現(xiàn) 循 環(huán)while語 句 和 用 do-while語 句 的 比 較 :在 一 般 情 況 下 , 用 while語 句 和 用 do-while語 句 處 理 同一 問 題 時 , 若 二 者 的 循 環(huán) 體 部 分 是 一 樣 的 , 它

9、 們 的 結果 也 一 樣 。 但 是 如 果 while后 面 的 表 達 式 一 開 始 就 為 假( 0值 ) 時 , 兩 種 循 環(huán) 的 結 果 是 不 同 的 。 while語 句 執(zhí)行 0次 循 環(huán) 體 , do-while語 句 至 少 執(zhí) 行 一 次 循 環(huán) 體 。 5.4 用 do-while語 句 實 現(xiàn) 循 環(huán)例 5.4 while和 do-while循 環(huán) 的 比 較 ( 1) ( 2)#include #include void main( ) void main( ) int sum=0,i; int sum=0,i; scanf(“%d”, scanf(”%d”,

10、 while (i=10) do sum=sum+I; sum=sum+i; i+; i+; while (i=10); printf(“sum=%dn”, printf(“sum=%dn”, sum); sum ); 運 行 結 果 :1 sum=55 再 運 行 一 次 : 11 sum=0 運 行 結 果 :1 sum=55 再 運 行 一 次 : 11 sum=11說 明 : 當 while后 面 的 表 達 式 的 第一 次 的 值 為 “ 真 ” 時 , 兩 種 循 環(huán) 得到 的 結 果 相 同 。 否 則 , 二 者 結 果 不相 同 。 5.5 用 for 語 句 實 現(xiàn) 循

11、環(huán) C語 言 中 的 for語 句 使 用 最 為 靈 活 , 不 僅 可 以 用 于 循環(huán) 次 數(shù) 已 經(jīng) 確 定 的 情 況 , 而 且 可 以 用 于 循 環(huán) 次 數(shù) 不確 定 而 只 給 出 循 環(huán) 結 束 條 件 的 情 況 , 它 完 全 可 以 代替 while語 句 。 一 般 形 式 : for(表 達 式 1;表 達 式 2;表 達 式 3) 語 句 5.5 用 for 語 句 實 現(xiàn) 循 環(huán)for語 句 的 執(zhí) 行 過 程 :( 1) 先 求 解 表 達 式 1。( 2) 求 解 表 達 式 2, 若 其 值 為 真 ( 值 為 非 0) , 則 執(zhí) 行 for語 句 中

12、 指 定 的 內(nèi) 嵌 語 句 , 然 后 執(zhí) 行 下 面 第 ( 3) 步 。 若 為 假 ( 值 為 0) , 則 結 束 循 環(huán) , 轉 到 第 ( 5) 步 。( 3) 求 解 表 達 式 3。( 4) 轉 回 上 面 第 ( 2) 步 驟 繼 續(xù) 執(zhí) 行 。( 5) 循 環(huán) 結 束 , 執(zhí) 行 for語 句 下 面 的 一 個 語 句 。 5.5 用 for 語 句 實 現(xiàn) 循 環(huán)表 達 式 2?執(zhí) 行 語 句成 立 不 成 立執(zhí) 行 for循 環(huán) 之 后 的 語句執(zhí) 行 表 達 式 3執(zhí) 行 表 達 式 1 循 環(huán) 初 始 條 件循 環(huán) 控 制 條 件循 環(huán) 體 for語 句 等 價

13、 于 下 列 語 句 :表 達 式 1 ;while (表 達 式 2 ) 語 句 ; 表 達 式 3 ; 5.5 用 for 語 句 實 現(xiàn) 循 環(huán)for語 句 最 簡 單 的 應 用 形 式 也 就 是 最 易 理 解 的 形 式 如 下 : for(循 環(huán) 變 量 賦 初 值 ;循 環(huán) 條 件 ;循 環(huán) 變 量 增 值 ) 例 如 : for(i=1;i=100;i+) sum=sum+i;它 相 當 于 以 下 語 句 : i=1; while(i=100) sum=sum+i;i+; 顯 然 , 用 for語 句 簡 單 、方 便 。 5.5 用 for 語 句 實 現(xiàn) 循 環(huán)說 明

14、 :( 1) for語 句 的 一 般 形 式 中 的 “ 表 達 式 1” 可 以 省 略 ,此 時 應 在 for語 句 之 前 給 循 環(huán) 變 量 賦 初 值 。 注 意 省略 表 達 式 1時 , 其 后 的 分 號 不 能 省 略 。 如 for(;i=1 0 0 ;i+) sum=sum+i; 執(zhí) 行 時 , 跳 過 “ 求 解 表 達 式 1” 這 一 步 , 其 他 不 變 。 5.5 用 for 語 句 實 現(xiàn) 循 環(huán)說 明 :( 2) 如 果 表 達 式 2省 略 , 即 不 判 斷 循 環(huán) 條 件 , 循 環(huán) 無終 止 地 進 行 下 去 。 也 就 是 認 為 表 達

15、式 2始 終 為 真 。例 如 : for(i=1 ; ;i+) sum=sum+i; 表 達 式 1是 一 個 賦 值 表 達 式 , 表 達 式 2空 缺 。 它 相 當 于 : i=1 ; while(1 ) sum=sum+1 ;i+; 5.5 用 for 語 句 實 現(xiàn) 循 環(huán)說 明 :( 3) 表 達 式 3也 可 以 省 略 , 但 此 時 程 序 設 計 者 應 另 外設 法 保 證 循 環(huán) 能 正 常 結 束 。 如 : for(i=1 ;i=1 0 0 ;) sum=sum+i; i+; 在 上 面 的 for語 句 中 只 有 表 達 式 1和 表 達 式 2, 而 沒有

16、 表 達 式 3。 i+的 操 作 不 放 在 for語 句 的 表 達 式 3的位 置 處 , 而 作 為 循 環(huán) 體 的 一 部 分 , 效 果 是 一 樣 的 ,都 能 使 循 環(huán) 正 常 結 束 。 5.5 用 for 語 句 實 現(xiàn) 循 環(huán)說 明 :( 4) 可 以 省 略 表 達 式 1和 表 達 式 3, 只 有 表 達 式 2, 即只 給 循 環(huán) 條 件 。 如 : for(;i=1 0 0 ;) while(i=1 0 0 ) sum=sum+i; 相 當 于 sum=sum+i; i+; i+; 在 這 種 情 況 下 , 完 全 等 同 于 while語 句 。 可 見

17、for語 句比 while語 句 功 能 強 , 除 了 可 以 給 出 循 環(huán) 條 件 外 , 還可 以 賦 初 值 , 使 循 環(huán) 變 量 自 動 增 值 等 。 5.5 用 for 語 句 實 現(xiàn) 循 環(huán)說 明 :( 5) 3個 表 達 式 都 可 省 略 , 如 : for(; ;) 語 句 相 當 于 while(1) 語 句即 不 設 初 值 , 不 判 斷 條 件 ( 認 為 表 達 式 2為 真 值 ) ,循 環(huán) 變 量 不 增 值 。 無 終 止 地 執(zhí) 行 循 環(huán) 體 。 5.5 用 for 語 句 實 現(xiàn) 循 環(huán)說 明 :( 6) 表 達 式 1可 以 是 設 置 循 環(huán)

18、 變 量 初 值 的 賦 值 表 達 式 ,也 可 以 是 與 循 環(huán) 變 量 無 關 的 其 他 表 達 式 。 如 : for (sum=0 ;i=1 0 0 ;i+) sum=sum+i;表 達 式 3也 可 以 是 與 循 環(huán) 控 制 無 關 的 任 意 表 達 式 。 5.5 用 for 語 句 實 現(xiàn) 循 環(huán)說 明 :表 達 式 1和 表 達 式 3可 以 是 一 個 簡 單 的 表 達 式 , 也 可 以是 逗 號 表 達 式 , 即 包 含 一 個 以 上 的 簡 單 表 達 式 , 中 間用 逗 號 間 隔 。 如 : for(sum=0 ,i=1 ;i=1 0 0 ;i+)

19、 sum=sum+i;或 for(i=0 ,j=1 0 0 ;i=j;i+,j-) k=i+j;表 達 式 1和 表 達 式 3都 是 逗 號 表 達 式 , 各 包 含 兩 個 賦 值表 達 式 , 即 同 時 設 兩 個 初 值 , 使 兩 個 變 量 增 值 。 5.5 用 for 語 句 實 現(xiàn) 循 環(huán)說 明 :在 逗 號 表 達 式 內(nèi) 按 自 左 至 右 順 序 求 解 , 整 個 逗 號 表 達式 的 值 為 其 中 最 右 邊 的 表 達 式 的 值 。 如 : for(i=1 ;i=1 0 0 ;i+,i+) sum=sum+i;相 當 于 for(i=1 ;i=1 0 0

20、;i=i+2 ) sum=sum+i; 5.5 用 for 語 句 實 現(xiàn) 循 環(huán)說 明 :( 7) 表 達 式 一 般 是 關 系 表 達 式 (如 i=100)或 邏 輯 表達 式 ( 如 ab (c=getchar()!= n;i+=c); 在 表 達 式 2中 先 從 終 端 接 收 一 個 字 符 賦 給 c, 然 后 判斷 此 賦 值 表 達 式 的 值 是 否 不 等 于 n ( 換 行 符 ) ,如 果 不 等 于 n , 就 執(zhí) 行 循 環(huán) 體 。注 意 : 此 for語 句 的 循 環(huán) 體 為 空 語 句 , 把 本 來 要 在 循 環(huán) 體內(nèi) 處 理 的 內(nèi) 容 放 在 表

21、 達 式 3中 , 作 用 是 一 樣 的 。 可見 for語 句 功 能 強 , 可 以 在 表 達 式 中 完 成 本 來 應 在循 環(huán) 體 內(nèi) 完 成 的 操 作 。 5.5 用 for 語 句 實 現(xiàn) 循 環(huán)說 明 : for( ;(c=getchar()!= n ;) printf( %c , c); for語 句 中 只 有 表 達 式 2, 而 無 表 達 式 1和 表 達 式 3。 其 作 用 是 每 讀 入 一 個 字 符 后 立 即 輸 出 該 字 符 , 直 到輸 入 一 個 “ 換 行 ” 為 止 。 請 注 意 , 從 終 端 鍵 盤 向 計算 機 輸 入 時 , 是

22、 在 按 Enter鍵 以 后 才 將 一 批 數(shù) 據(jù) 一起 送 到 內(nèi) 存 緩 沖 區(qū) 中 去 的 。運 行 情 況 :Computer (輸 入 )Computer (輸 出 )而 不 是Ccoommppuutteerr 5.5 用 for 語 句 實 現(xiàn) 循 環(huán)注 意 : C語 言 中 的 for語 句 比 其 他 語 言 ( 如 BASIC,PASCAL) 中 的 FOR語 句 功 能 強 得 多 。 可 以 把 循 環(huán) 體 和一 些 與 循 環(huán) 控 制 無 關 的 操 作 也 作 為 表 達 式 1或 表 達 式3出 現(xiàn) , 這 樣 程 序 可 以 短 小 簡 潔 。 但 過 分 地

23、 利 用 這 一特 點 會 使 for語 句 顯 得 雜 亂 , 可 讀 性 降 低 , 最 好 不 要把 與 循 環(huán) 控 制 無 關 的 內(nèi) 容 放 到 for語 句 中 。 5.6 循 環(huán) 的 嵌 套 一 個 循 環(huán) 體 內(nèi) 又 包 含 另 一 個 完 整 的 循 環(huán) 結 構 稱 為 循環(huán) 的 嵌 套 。 內(nèi) 嵌 的 循 環(huán) 中 還 可 以 嵌 套 循 環(huán) , 這 就 是多 層 循 環(huán) 。 三 種 循 環(huán) ( while循 環(huán) 、 do-while循 環(huán) 和 for循 環(huán) )可 以 互 相 嵌 套 。 5.6 循 環(huán) 的 嵌 套 下 面 幾 種 都 是 合 法 的 形 式 : ( 1 )

24、( 2 ) ( 3 ) while( ) do for(;) while( ) do for(;) while( ); while( ); 5.6 循 環(huán) 的 嵌 套 ( 4 ) ( 5 ) ( 6 ) while( ) for(;) do do while( ) for(;) while( ) while( ) 5.7 幾 種 循 環(huán) 的 比 較( 1) 四 種 循 環(huán) 都 可 以 用 來 處 理 同 一 問 題 , 一 般 情 況 下它 們 可 以 互 相 代 替 。 但 一 般 不 提 倡 用 goto型 循 環(huán) 。( 2) 在 while循 環(huán) 和 do-while循 環(huán) 中 , 只

25、在 while后 面的 括 號 內(nèi) 指 定 循 環(huán) 條 件 , 因 此 為 了 使 循 環(huán) 能 正 常 結束 , 應 在 循 環(huán) 體 中 包 含 使 循 環(huán) 趨 于 結 束 的 語 句 (如i+, 或 i=i+1等 )。 for循 環(huán) 可 以 在 表 達 式 3中 包 含 使 循 環(huán) 趨 于 結 束 的 操作 , 甚 至 可 以 將 循 環(huán) 體 中 的 操 作 全 部 放 到 表 達 式 3中 。因 此 for語 句 的 功 能 更 強 , 凡 用 while循 環(huán) 能 完 成 的 ,用 for循 環(huán) 都 能 實 現(xiàn) 。 5.7 幾 種 循 環(huán) 的 比 較( 3) 用 while和 do-wh

26、ile循 環(huán) 時 , 循 環(huán) 變 量 初 始 化 的操 作 應 在 while和 do-while語 句 之 前 完 成 。 而 for語句 可 以 在 表 達 式 1中 實 現(xiàn) 循 環(huán) 變 量 的 初 始 化 。( 4) while循 環(huán) 、 do-while循 環(huán) 和 for循 環(huán) , 可 以 用break語 句 跳 出 循 環(huán) , 用 continue語 句 結 束 本 次 循 環(huán)( break語 句 和 continue語 句 見 下 節(jié) ) 。 而 對 用 goto語 句 和 if語 句 構 成 的 循 環(huán) , 不 能 用 break語 句 和continue語 句 進 行 控 制

27、。 5.8 break語 句 和 continue語 句 break語 句 break語 句 可 以 用 來 從 循 環(huán) 體 內(nèi) 跳 出 循 環(huán) 體 , 即 提 前結 束 循 環(huán) , 接 著 執(zhí) 行 循 環(huán) 下 面 的 語 句 一 般 形 式 : break;注 意 : break語 句 不 能 用 于 循 環(huán) 語 句 和 switch語 句 之 外 的 任何 其 他 語 句 中 。 5.8 break語 句 和 continue語 句 例 :float pi=3 .1 4 1 5 9 ;for(r=1 ;r1 0 0 ) break; printf(r=%f,area=%fn, r,area

28、); 程 序 的 作 用 是 計 算 r=1到 r=10時 的 圓 面 積 , 直 到面 積 area大 于 100為 止 。 從 上 面 的 for循 環(huán) 可 以看 到 : 當 area100時 , 執(zhí) 行 break語 句 , 提 前 結束 循 環(huán) , 即 不 再 繼 續(xù) 執(zhí) 行 其 余 的 幾 次 循 環(huán) 。 5.8 break語 句 和 continue語 句 continue語 句 作 用 為 結 束 本 次 循 環(huán) , 即 跳 過 循 環(huán) 體 中 下 面 尚 未 執(zhí)行 的 語 句 , 接 著 進 行 下 一 次 是 否 執(zhí) 行 循 環(huán) 的 判 定 .一 般 形 式 : contin

29、ue; 5.8 break語 句 和 continue語 句 continue語 句 和 break語 句 的 區(qū) 別 continue語 句 只 結 束 本 次 循 環(huán) , 而 不 是 終 止 整 個 循環(huán) 的 執(zhí) 行 。 while(表 達 式 1) for if(表 達 式 2) continue; 5.8 break語 句 和 continue語 句 continue語 句 和 break語 句 的 區(qū) 別 break語 句 則 是 結 束 整 個 循 環(huán) 過 程 , 不 再 判 斷 執(zhí) 行 循環(huán) 的 條 件 是 否 成 立 。while(表 達 式 1) for if(表 達 式 2

30、) break; 5.8 break語 句 和 continue語 句 例 5.5 把 100 200之 間 的 不 能 被 3整 除 的 數(shù) 輸 出 。 #include void main() int n; for(n=100;n=200;n+) if (n%3=0) continue; printf(%d”,n); 說 明 : 當 n能 被 3整 除 時 , 執(zhí)行 continue語 句 , 結 束 本 次循 環(huán) ( 即 跳 過 printf函 數(shù) 語句 ) , 只 有 n不 能 被 3整 除 時才 執(zhí) 行 printf函 數(shù) 。 5.9 程 序 舉 例例 5.6 用 /41-1/3+1

31、/5-1/7+公 式 求 的 近 似 值 ,直 到 某 一 項 的 絕 對 值 小 于 0.000001為 止 。例 5.6 求 pi的 近 似 值 #include #includevoid main() int s; float n,t,pi; t=1; pi=0; n=1.0; s=1; while(fabs(t)1e-6) pi=pi+t; n=n+2; s=-s; t=s/n; pi=pi*4; printf(“pi=%10.6fn”,pi); 運 行 結 果 : pi= 3.141594 5.9 程 序 舉 例例 5.7 求 Fibonacci數(shù) 列 前 40個 數(shù) 。 這 個 數(shù)

32、 列 有 如 下特 點 : 第 1, 2兩 個 數(shù) 為 1, 1。 從 第 3個 數(shù) 開 始 , 該數(shù) 是 其 前 面 兩 個 數(shù) 之 和 。 即 : F(1)=1 (n=1) F(2)=1 (n=2) F(n)=F(n-1)+F(n-2) (n3) 5.9 程 序 舉 例例 5.7 求 Fibonacci數(shù) 列 前 40個 數(shù) 。 #include void main() long int f1, f2; int i; f1=1;f2=1; for(i=1; i=20; i+) printf(“%12ld %12ld”,f1,f2); if(i%2=0) printf(“n”); f1=f1

33、+f2; f2=f2+f1; 運 行 結 果 : 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578 57022887 9227465 14930352 24157817 39088169 63245986 102334155 5.9 程 序 舉 例例 5.8 判 斷 m是 否 素 數(shù) 。算 法 思 想 : 讓 m被 2倒 除 , 如 果

34、 m能 被 2 k之 中 任 何 一 個 整 數(shù) 整除 , 則 提 前 結 束 循 環(huán) , 此 時 i必 然 小 于 或 等 于 k(即 );如 果 m不 能 被 2 k(即 )之 間 的 任 一 整 數(shù) 整 除 , 則 在 完成 最 后 一 次 循 環(huán) 后 , i還 要 加 1, 因 此 i=k+1, 然 后 才終 止 循 環(huán) 。 在 循 環(huán) 之 后 判 別 i的 值 是 否 大 于 或 等 于k+1, 若 是 , 則 表 明 未 曾 被 2 k之 間 任 一 整 數(shù) 整 除過 , 因 此 輸 出 “ 是 素 數(shù) ” 。 k的 取 值 : k=m-1 或 k=sqrt(m)都 可 以 5.9

35、 程 序 舉 例例 5.8 判 斷 m是 否 素 數(shù) 。 #include #include void main() int m,i,k; scanf(“%d”, k=sqrt(m); for(i=2;ik) printf(“%d is a prime number n”,m); else printf(%d is not a prime number n”,m); 運 行 結 果 : 17 17 is a prime number 5.9 程 序 舉 例例 5.9 求 100 200間 的 全 部 素 數(shù) 。#include # include void main() int m,k,i,n

36、=0; for(m=101;m=200;m=m+2) k=sqrt(m); for (i=2;i=k+1) printf(%d ”,m); n=n+1; if(n%10=0) printf(“n”); printf ( n); 運 行 結 果 : 101 103 107 109 113 127 131 137 139 149151 157 163 167 173 179 181 191 193 197199 5.9 程 序 舉 例例 5.10 譯 密 碼 。 為 使 電 文 保 密 , 往 往 按 一 定 規(guī) 律 將 其轉 換 成 密 碼 , 收 報 人 再 按 約 定 的 規(guī) 律 將 其 譯 回 原 文 。例 如 : 可 以 按 以 下 規(guī) 律 將 電 文 變 成 密 碼 : 將 字 母 A變 成 字 母 E, a變 成 e, 即 變 成 其 后 的 第 4個字 母 , W變 成 A, X變 成 B, Y變 成 C, Z變 成 D。 5.9 程 序 舉 例例 5.10 輸 入 一 行 字 符 , 要 求 輸 出 其 相 應 的 密 碼#include void main() char c; while(c=getchar()!=n) if(c=a printf(“%cn”,c); 運 行 結 果 : China! Glmre!

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

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!