プログラミング言語Ⅰ・講義メモ2

p.102 2重ループ

・繰返しの内側に繰返しを記述することで2重ループを表現できる。
・for文の2重ループによって「n回繰返す中で、各m回繰返す」ことを記述できて便利。
 例:ダンジョンの1階から100階まで、それぞれ10個の部屋があるので、中にいるモンスターの数。
※ for文では対象が1行のみの場合{}を省略できるが、特に2重ループでは省略が推奨されないことが多い。
・for文で用いるカウンタ用の変数は外側と内側で別にすること。主に、iとjが使われることが多い。

p.102 list0418.cpp

//p.102 list0418.cpp
#include <stdio.h>
int main(void)
{
    for (int i = 1; i <= 9; i++) { //1の段から9の段まで繰返す
        for (int j = 1; j <= 9; j++) { //×1から×9まで繰返す
            printf("%3d", i * j); //積を3桁で表示
        }
        putchar('\n'); //改行
    }
    return 0;
}

p.107 演習4-20 ヒント

・上見出し2行はputsで文字列として表示しても良いし、繰返しで表示しても良い
・3行目からは、内側の繰返しに入る前に横タイトルを表示する
・段数が得られるカウンタiを用いて、printf(" %d |", i); とすれば良い

作成例

//p.107 演習4-20 = p.102 list0418.cpp・改
#include <stdio.h>
int main(void)
{
    puts("   |  1  2  3  4  5  6  7  8  9"); //【追加】
    puts("---+---------------------------"); //【追加】
    for (int i = 1; i <= 9; i++) { //1の段から9の段まで繰返す
        printf(" %d |", i); //【追加】横タイトルを表示
        for (int j = 1; j <= 9; j++) { //×1から×9まで繰返す
            printf("%3d", i * j); //積を3桁で表示
        }
        putchar('\n'); //改行
    }
    return 0;
}

【自由参加課題】p.107 演習4-20・改

・putsで表示している1~9をfor文で記述しよう

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です