練習 [2] if 文(5/5)

練習 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
  • 【プログラムの実行例】(その赤字は実行時にキーボードから入力する内容
整数を 1 つ入力してください:-123456789
各桁の合計 = -45

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


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