上一篇介紹了需要與if條件式結合且與迴圈控制有關的語法,基本上我們已經把基礎的程式語法都學得差不多了,如果有不熟悉的部分要趕快回頭複習喔!
現在我們來試著把所學的東西組合起來看看吧!
學到現在的所有語法,都是可以任意組合的,像是迴圈內可以再放個迴圈,條件式可以放在任意你需要的地方,也可以善用continue & break去做迴圈控制。
我們今天來實用看看多重迴圈(也被稱為巢狀迴圈),雖然前面幾篇多少有使用到,不過我們一步步做題目看看!
題目
輸入n.m兩個整數,使用「*」列印出長寬為n.m的長方形。
解題
(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");
}
#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的九九乘法表,如以下範例。