iT邦幫忙

0

【從零開始的 C 語言筆記】第二十二篇-多重迴圈 & 九九乘法表

  • 分享至 

  • xImage
  •  

不怎麼重要的前言

上一篇介紹了需要與if條件式結合且與迴圈控制有關的語法,基本上我們已經把基礎的程式語法都學得差不多了,如果有不熟悉的部分要趕快回頭複習喔!

現在我們來試著把所學的東西組合起來看看吧!


多重迴圈

學到現在的所有語法,都是可以任意組合的,像是迴圈內可以再放個迴圈,條件式可以放在任意你需要的地方,也可以善用continue & break去做迴圈控制。

我們今天來實用看看多重迴圈(也被稱為巢狀迴圈),雖然前面幾篇多少有使用到,不過我們一步步做題目看看!


列印矩陣

  1. 題目
    輸入n.m兩個整數,使用「*」列印出長寬為n.m的長方形。
    https://ithelp.ithome.com.tw/upload/images/20211103/20142565gfllBwmN2l.png

  2. 解題

(1) 先確認輸入值,因為需要輸入兩個整數,所以使用scanf讀兩個整數後存入變數(變數記得宣告)中。

int n,m;
scanf("%d%d", &n, &m);

(2) 思考題目列印形式,是需以n.m為長寬的長方形,所以思考可以分作兩個部分。
a. 列印一行長為n的「*」時,可簡單使用for迴圈完成,且列印完一行結束記得換行。

for(int j = 0; j<n; j++){
    printf("*");
}
printf("\n")

b.除了長為n、寬也須為m,即還要有m行的n個「*」,所以須以for迴圈再包住上一個for迴圈。

for(int i = 0; i<m; i++){
    for(int j = 0; j<n; j++){
        printf("*");
    }
    printf("\n");
}
  1. 程式碼
#include <stdio.h>

int main()
{
    int n,m;
    printf("plz input n & m: ");
    scanf("%d%d", &n, &m);

    for(int i = 0; i<m; i++){
        for(int j = 0; j<n; j++){
            printf("*");
        }
        printf("\n");
    }

    return 0;
}

小作業

列印一個2至9的九九乘法表,如以下範例。
https://ithelp.ithome.com.tw/upload/images/20211103/20142565pmHGY1Bkcs.png
https://ithelp.ithome.com.tw/upload/images/20211103/20142565tntP9rGaxV.png


今天稍微帶過多重迴圈的用法跟思路,希望大家可以漸漸地開始使用邏輯思考解題,分段完成你要的結果!

下一篇我們來介紹同是條件判斷式的語法--「Switch」!


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言