課題 [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) ]