微剋多資訊

 找回密碼
 註冊

Login

Login

搜索

該用戶從未簽到

發表於 2014-3-23 17:59 | 顯示全部樓層 |閱讀模式
本帖最後由 animejp 於 2014-3-23 18:27 編輯

因工作需要,回頭開始學最基本的C,參考了許多書籍都不符合自己學習方式,最後選擇了這本書 (但本書並未提供作業解答)
若您正在學習這本書,且跟我一樣尷尬(國中、高中數學忘光了),希望這系列的帖子能給您小小的幫助
因本身未學習過任何程式語言,初學中,所以這系列的帖子會出的很慢,請見諒

學習環境:Linux
編譯器:gcc

書名:由片語學習C程式設計
作者:劉邦鋒
出版者:國立臺灣大學出版中心
ISBN:978-986-03-3464-7

於 2014.03.21 獲得作者劉邦鋒教授許可,授權後學公開此書籍所有內容
小小心願:如果有討論需求,期請於「範例題目」或「作業題目」帖子回文討論;避免於「範例解答」及「作業參考解答」帖子回文討論
目的:希望能完整排版、依序記錄,供學習者參考


CHAPTER 5 迴圈 範例題目 (共13題)

除範例13未修改,其餘範例皆親自增加修改(題目、輸入、輸出、提示、註解)

5.1 whilew迴圈

while (condition)
    statement;


範例1
寫一程式讀入一正整數a,計算出10的倍數中大於讀入數字之最小值,並在螢幕上顯示答案

輸入:23
輸出:30

輸入:30
輸出:40



點評

建議即使迴圈或判斷是內只有一行,也加上大括號{}。當程式碼長了即使有縮排也很容易忽略。  發表於 2014-3-24 11:26

該用戶從未簽到

 樓主| 發表於 2014-3-23 18:02 | 顯示全部樓層
本帖最後由 animejp 於 2014-3-23 18:04 編輯

5.1.1 使用複合敘述的while迴圈

while (condition)
{
    statement1;
    statement2;
    statement3;
}

範例2:
寫一程式讀入2整數a, b,計算a加到b的和。

輸入:1
輸入:10
輸出:55

輸入:10
輸入:1
輸出:55
回覆

使用道具 舉報

該用戶從未簽到

 樓主| 發表於 2014-3-23 18:05 | 顯示全部樓層
範例3:
寫一程式讀入2整數a, b,計算a和b的最大公因數。

輸入:56
輸入:72
輸出:8

輸入:143
輸入:78
輸出:13
回覆

使用道具 舉報

該用戶從未簽到

 樓主| 發表於 2014-3-23 18:07 | 顯示全部樓層
本帖最後由 animejp 於 2014-3-23 18:08 編輯

5.2 for迴圈

for (initialization; condition;  adjustment)
    statement;

範例4:
寫一程式讀入一正整數a,在螢幕上由小到大依序輸出1到a之間所有的整數

輸入:5
輸出:1
輸出:2
輸出:3
輸出:4
輸出:5
回覆

使用道具 舉報

該用戶從未簽到

 樓主| 發表於 2014-3-23 18:08 | 顯示全部樓層
範例5:
寫一程式讀入一正整數,使用for if判斷其是否為質數。
若為質數則輸出1;若非質數則輸出2。

輸入:73
輸出:1

輸入:529
輸出:2
回覆

使用道具 舉報

該用戶從未簽到

 樓主| 發表於 2014-3-23 18:10 | 顯示全部樓層
本帖最後由 animejp 於 2014-3-23 18:11 編輯

5.2.1 使用複合敘述的for迴圈

for (initialization; condition; adjustment)
{
    statement1;
    statement1;
    statement1;
}

範例6:
寫一程式讀入一正整數i,使用for迴圈計算由1到i的和、平方和立方和。

輸入:10
輸出:55
輸出:385
輸出:3025
回覆

使用道具 舉報

該用戶從未簽到

 樓主| 發表於 2014-3-23 18:12 | 顯示全部樓層
5.3 do while迴圈

do
    statement;
while (condition);

範例7
寫一程式讀入一正整數i,使用do while迴圈輸出i + 5 的值

輸入:20
輸出:25
回覆

使用道具 舉報

該用戶從未簽到

 樓主| 發表於 2014-3-23 18:14 | 顯示全部樓層
本帖最後由 animejp 於 2014-3-23 18:15 編輯

5.3.1 使用複合敘述的do while迴圈

do
{
  statement1;
  statement2;
  statement3;
}
while (cond);

範例8:
寫一程式讀入一正整數i,使用do while迴圈計算由1到i的和、平方和立方和。

輸入:20
輸出:210
輸出:2870
輸出:44100
回覆

使用道具 舉報

該用戶從未簽到

 樓主| 發表於 2014-3-23 18:16 | 顯示全部樓層
5.4 使用break結束迴圈

if (break_condition)
    break;

範例9:(修改自範例5)
寫一程式讀入一正整數i,使用for,if, break判斷其是否為質數。
若為質數則輸出3;若非質數則輸出-3。

提示:若發現該數非質數,則break結束迴圈,結省運算時間

輸入:73
輸出:3

輸入:529
輸出:-3
回覆

使用道具 舉報

該用戶從未簽到

 樓主| 發表於 2014-3-23 18:18 | 顯示全部樓層
範例10:(修正自範例9)
寫一程式讀入一正整數i,判斷其是否為質數。
若為質數則輸出4;若非質數則輸出5。

註:不使用break,改將break納入條件,一樣達到結省運算時間的目的

提示:condition內有雙條件

輸入:73
輸出:4

輸入:529
輸出:5
回覆

使用道具 舉報

您需要登入後才可以回帖 登入 | 註冊

本版積分規則

小黑屋|Archiver|微剋多資訊(MicroDuo)

GMT+8, 2016-12-6 20:05

Discuz! X

© 2009-2016 Microduo

快速回覆 返回頂部 返回列表