不怎么重要的前言
上一篇介绍了需要与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的九九乘法表,如以下範例。