練習 [3] while 文(4/5)

練習 4(提出プログラム名:p0304a.c)

以下の例のように実行できるプログラムを p0304a.c として作りなさい.
このプログラムでは 1 つの整数 n を読み込み,次のルールに従って n 個だけ記号を出力し,最後に改行した後で「以上です」と出力して終了する.なお,n は 0 以上であると仮定してプログラムを作ってよい.
【出力ルール】
 ① 通常は半角のマイナス記号(-を出力するが,
  5 回に 1 回だけマイナス記号の代わりに半角のプラス記号(+を出力する.
  (つまり,5 個目,10 個目,15 個目,…. は – ではなく + を出力する)
 ② 上の記号出力とは別に,記号を 10 個出力するたびに改行も行う.
 ③ n 個の記号を出力し終わったら,いったん改行し,改めて最後に「以上です」と出力する.

【注意点】
この問題では if 文は 2 回までしか使ってはいけません

【ヒント】
この問題では①と②を別々の if 文に切り分けて考えると良いです.

  • 【プログラムの実行例】(その1)赤字は実行時にキーボードから入力する内容
整数を 1 つ入力してください:6
----+-
以上です
  • 【プログラムの実行例】(その2)赤字は実行時にキーボードから入力する内容
整数を 1 つ入力してください:27
----+----+
----+----+
----+--
以上です
  • 【プログラムの実行例】(その3)赤字は実行時にキーボードから入力する内容
整数を 1 つ入力してください:0

以上です

【過去にあったミス(減点となり,やり直しを命じられる)】
■ 上の3種類の実行例と出力が違っている(きちんと確認していない).
  (例1)– の個数が違っている.
      よくあるミスとして,実行例 1 で ----+- となるべきところが -----+- となっている.
      (+ の左に - が 1 個多い
  (例2)if 文を多数(3回以上)使っていて,必要以上に複雑なプログラムになっている.
      例えば,10 で割り切れる時だけわざわざ "+n" と出力させるようにしている.
      ルールの①と②は別々に処理する方が話はずっと簡単である.
  (例3)「以上です」という出力がその前の記号につながってしまっている.
      例えば, ----+-以上です になってしまっている.
インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).


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