問 4(提出プログラム名:ex0504.c)
整数 n を読み込み, 実行例と同じかたちで n 行 n 列の正方形を出力するプログラムを作りなさい.
ただし,出力する正方形の対角成分は @ で,右上三角部分は * で,左下三角部分は - でそれぞれ表すものとする(いずれも半角のアットマーク,アスタリスク,マイナス記号である).
なお, プログラムでは必ず for 文を使うこと.if 文も使ってよいが 2 回までとする.
n は 1 以上 20 以下であると仮定してプログラムを作ってよい.
提出するソースファイル(ソースプログラム)のファイル名は ex0504.c としなさい.
【ヒント】
行の位置を i,列の位置を j で表した for 文の二重ループを作るとよいです.そして,その中で
● 右上三角部分というのは i < j の場合
● 左下三角部分というのは i > j の場合
● 対角成分というのは i == j の場合
にそれぞれ相当しますので,次のような場合分けを行うとよいです:
if ( i < j )
{
...
}
else if ( i > j )
{
...
}
else ← else if ( i == j ) と書く必要はありません(上の2つの条件から i == j なのは明らか)
{
...
}
- 【プログラムの実行結果】(その1)※赤字は実行時にキーボードから入力する内容
※出力される記号が違っていたり,余計な空白が入っていたりしていないか注意せよ.
n を入力してください:10 @*********⏎ -@********⏎ --@*******⏎ ---@******⏎ ----@*****⏎ -----@****⏎ ------@***⏎ -------@**⏎ --------@*⏎ ---------@⏎
- 【プログラムの実行結果】(その2)※赤字は実行時にキーボードから入力する内容
n を入力してください:3 @**⏎ -@*⏎ --@⏎
- 【プログラムの実行結果】(その3)※赤字は実行時にキーボードから入力する内容
n を入力してください:1 @⏎
【過去にあったミス(実際に減点となり,やり直しを命じられた例)】
■ 実行の画面出力が上の例と違う(きちんと確認していない).
(例1)表示に使っている記号が違っている.
(例2)出力される記号の個数が違っている.
■ ヒントを見落としていて,無駄に複雑なプログラムになってしまっている.
■ インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).
ミスが無いことを確認したら次の問題へ → [ 問5 (ex0505.c) ]