練習 5(提出プログラム名:p0205a.c)※加点対象
この問題は while 文を使った繰り返し構造の練習問題であり
中級クラスの受講生は必須ではない(提出しなくてもよい)が,上級クラスの受講生は必須とする.
なお,どちらのクラスであっても適切に正解すれば加点対象として扱う.
以下の例のように実行できるプログラムを作りなさい.
ただし,ファイル名は p0205a.c とする.
このプログラムでは整数 x を入力として受け取り,各桁の値を合計したものを出力させるものとする.
例えば,x = 1024 の場合,出力させる値は 7 となる(※なぜなら, 1 + 0 + 2 + 4 = 7).
ただし,x < 0 の場合は |x| の値について同様の合計値を求め,それを負の値として出力させよ.例えば,x = -789 の場合,出力させる値は -24 となる(※ 7+8+9 = 24 であり,元の値が負のため) .
【注意】この問題は while 文を使って作りなさい.for 文や配列を使ってはいけません.
【ヒント】
x が 0 以上の場合,これを 10 で割った余りを求めれば 1 の位の値が求まります.
さらに,x を 10 で割った商(割り算の答え)を改めて x とし,再び 10 で割った余りを求めれば(元の x の)10 の位の値が求まります.
このように,「x を 10 で割った余りを求める」という操作と「x を 10 で割った商を改めて x とする」という操作を x が 0 になるまで繰り返せば各桁の値を取り出すことができます.
- 【プログラムの実行例】(その1)※赤字は実行時にキーボードから入力する内容
整数を 1 つ入力してください:1024 各桁の合計 = 7⏎
- 【プログラムの実行例】(その2)※赤字は実行時にキーボードから入力する内容
整数を 1 つ入力してください:-789 各桁の合計 = -24⏎
- 【プログラムの実行例】(その3)※赤字は実行時にキーボードから入力する内容
整数を 1 つ入力してください:-123456789 各桁の合計 = -45⏎
【過去にあったミス(実際に減点となり,やり直しを命じられた例)】
■ 上に示した3通りの実行例と出力結果が違っている.
■ インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).
第 2 回(Cプログラミング;3 限目の方)の練習問題は以上の5問です.
p0201a.c ~ p0205a.c を Moodle から提出してください.※ただし,ファイル名を間違えないこと.
なお,コンパイルエラーや無限ループになるプログラムを 1 個でも提出した場合は総合評価を 0 点とするので十分に注意すること.
なお,提出後に間違いに気付いた場合,〆切前であれば差し替え(上書き)は可能です.