【从零开始的 C 语言笔记】第二十二篇-多重回圈 & 九九乘法表

不怎麽重要的前言

上一篇介绍了需要与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」!


<<:  【第31天】番外篇-Windows + YOLOV4 本地端训练

>>:  [Day32] Hexo - 修改主题样式及一些问题排除

Day 14 - PHP SDK: 用 Pure PHP 建立购物网 (上)

今天开始会分两天,上、下集来介绍单纯使用 PHP,不使用 PHP 框架的方法,来搭建一个购物网站。 ...

Keras的权重产生以及其介绍

参考网站:Keras官方指南   如果想要看各个神经元最初设定的权重,输入以下程序: layer =...

[Day1] 简单介绍 Google Assistant 语音应用程序

大家好,我是Hank。 目前就读於台科大资工所的研究生。 很高兴有机会向大家分享我在开发Google...

[Java Day21] 5.1. 私有化

教材网址 https://coding104.blogspot.com/2021/06/java-5...

[Day4] 学 Bootstrap 是为了走更长远的路 ~ 基本篇

前言 昨天的文章有提到接下来会介绍几个 Bootstrap 我到现在还是很常用的语法, 但你可能会说...