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

練習 5(提出プログラム名:p0305a.c)※加点対象

この問題は for 文を使った繰り返し構造の練習問題であり
中級クラスの受講生は必須ではない(提出しなくてもよい)が,上級クラスの受講生は必須とする.
なお,どちらのクラスであっても適切に正解すれば加点対象として扱う.

以下の例のように実行できるプログラムを作りなさい.
ただし,ファイル名は p0305a.c とする.

このプログラムでは整数 n を入力として受け取り,1 以上 n 以下の整数を次のルールで加工した上で合計したものを出力させるものとする.
【加工ルール】整数 k (1 以上 n 以下)について,
①整数 k が奇数の場合,それを 2 倍したものに加工して合計する.
②整数 k が偶数の場合,それを半分にしたものに加工して合計する.
③特例として,整数 k が 2 と 3 の公倍数の場合はその値を + 1 したものに加工して合計する.

例えば,n = 10 の場合,出力させる値は 69 となる
(※なぜなら, 1→2,2→1,3→6,4→2,5→10,6→7,7→14,8→4,9→18,10→5
なので 2 + 1 + 6 + 2 + 10 + 7 + 14 + 4 + 18 +5 = 69).
ただし,n <= 0 の場合は合計値を 0 として出力させよ.

【注意】この問題は for 文(または while 文)と if 文を使って作りなさい.配列を使ってはいけません.

  • 【プログラムの実行例】(その1)赤字は実行時にキーボードから入力する内容
整数を 1 つ入力してください:10
求める合計 = 69
  • 【プログラムの実行例】(その2)赤字は実行時にキーボードから入力する内容
整数を 1 つ入力してください:20
各桁の合計 = 276
  • 【プログラムの実行例】(その赤字は実行時にキーボードから入力する内容
整数を 1 つ入力してください:-12
求める合計 = 0

【過去にあったミス(実際に減点となり,やり直しを命じられた例)】
■ 上に示した3通りの実行例と出力結果が違っている
インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).


第 3 回(Cプログラミング;3 限目の方)の練習問題は以上の5問です.
p0301a.c ~ p0305a.c を Moodle から提出してください.※ただし,ファイル名を間違えないこと.
なお,コンパイルエラーや無限ループになるプログラムを 1 個でも提出した場合は総合評価を 0 点とするので十分に注意すること.
なお,提出後に間違いに気付いた場合,〆切前であれば差し替え(上書き)は可能です.