演習課題「模様を出力してみよう」
右のコードは、2次元配列を使って、縦に5個、横に10個の「.」を出力します。
このコードを修正して、4つの角で「.」の代わりに「+」を出力してください。
プログラムを実行して、正しく出力されれば演習課題クリアです!
期待する出力値
+........+
..........
..........
..........
+........+
#07:2次元配列で地図をつくろう - その1
2 次元配列の具体的な利用例として、RPGの簡単な地図をつくってみましょう。
char 型の 2 次元配列は次のようにして作成できます。char world_map[9][19];
この配列は、文字 (char 型の値) を要素として追加できる 2 次元配列です。
char 型の文字は printf の変換指定子に %c を使うことで出力できます。#include <stdio.h>
int main(void)
{
char x = 'a';
printf("%c\n", x);
}
文字列の中の 1 文字も出力することができます。#include <stdio.h>
int main(void)
{
char str[] = "paiza";
printf("%s\n", str); // paiza が出力される
printf("%c\n", str[0]); // p が出力される
}
※ %s と %c は正しく使い分ける必要があります。
・文字列 (char へのポインタ) に使うのは %s
・文字 (char) に使うのは %c
になっています。
このチャプターで作成したコードです。// 2 次元配列で地図をつくろう 1
#include <stdio.h>
int main(void)
{
char world_map[9][19];
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 19; j++) {
world_map[i][j] = '#';
}
}
world_map[0][0] = 'S';
world_map[0][18] = '@';
world_map[8][18] = 'G';
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 19; j++) {
printf("%c", world_map[i][j]);
}
printf("\n");
}
}