課題 [4] for 文(5/9)

問 5(提出プログラム名:ex0405a.c)

整数 n を読み込み, 1 以上 n 以下の各整数 i について,実行例と全く同じかたちで整数 i2 と i2 個の # (半角のシャープ)を出力するプログラムを for 文を使って作りなさい.
なお,n は 1 以上 9 以下であると仮定してプログラムを作ってよい.
ただし,このプログラムでは if 文を使ってはいけません(for 文だけで作成可能な課題です).
提出するソースファイル(ソースプログラム)のファイル名は ex0405a.c としなさい.

【ヒント】
行の位置を i,列の位置を j で表した for 文の二重ループを作るとよいです.
そして,上から i 行目では # を i*i 個出力することになるので,i を使った for 文の中に
j を使った for 文を次のように書くとよいです:
 for ( j = 1; j <= i*i; j++ ){
  ...

なお,行末に i*i を表示することも忘れないようにしてください.

  • 【プログラムの実行結果】(その1)※赤字は実行時にキーボードから入力する内容
    ※出力する記号は # であるか,行末に数字(個数)も書かれているか,
    右端の数字(個数)の前(左)には空白が入っているかそれぞれ注意せよ.
    また,# と # の間には空白を入れない(くっつけて表示させる)点にも注意せよ.
n を入力してください:7
# 1⏎
#### 4⏎
######### 9⏎
############### 16⏎
########################## 25⏎
#################################### 36⏎
################################################# 49⏎

  • 【プログラムの実行結果】(その2)※赤字は実行時にキーボードから入力する内容
n を入力してください:2
# 1⏎
#### 4⏎

  • 【プログラムの実行結果】(その3)※赤字は実行時にキーボードから入力する内容
n を入力してください:1
# 1⏎

【過去にあったミス(実際に減点となり,やり直しを命じられた例)】
■ 実行の画面出力が上の例と違う(きちんと確認していない).
  (例1)表示に使っている記号が違っている.
  (例2)出力される記号の個数が違っている.
  (例3)行末に数値を表示し忘れている.
■ ヒントを見落としていて,無駄に複雑なプログラムになってしまっている.
■ インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).


ミスが無いことを確認したら次の問題へ → [ 問6 (ex0406a.c) ]