練習 2(提出プログラム名:p0502.c)
サンプルプログラム 2 (sample2.c) を p0502.c という別の名前のファイルにコピーしなさい.そして,p0502.c を編集して以下の例のように実行できるプログラムを作りなさい.
なお,この問題では必ず for 文を使うこととする.また,if 文を使ってはいけません.
ただし,初項,公差,項数はいずれも整数であると仮定してプログラムを作ってよい.
このプログラムではサンプルプログラム 2 に対してさらに機能を追加し,等差数列に登場する数値の合計を出力させている.(実行例 1 でいえば「この数列の和 = 8 」という部分が追加機能に相当する.)
【注意】
等差数列の第 n 項の値や数列の和は高校で習う公式を使っても計算できるが,
この問題は for 文の練習なので公式を使ってはいけません.for 文による繰り返しで求めること.
【特に気を付けるべき点】
仮に合計値を sum という変数で表すとして,for 文による繰り返しで合計を求める場合には
for 文の前に sum = 0; を必ず書く(初期化を行う)のを絶対に忘れないようにしてください.
環境によってはこれを忘れていてもうまくいく(sum の初期値が運良く 0 になっている)こともありますが,必ずうまく動くという保証はできません.
変数の初期化忘れは見落としがちなミスの代表例といえます.
- 【プログラムの実行例】(その1)※赤字は実行時にキーボードから入力する内容
初項:5 公差:-2 項数:4 第 1 項 = 5⏎ 第 2 項 = 3⏎ 第 3 項 = 1⏎ 第 4 項 = -1 ⏎ この数列の和 = 8⏎
- 【プログラムの実行例】(その2)※赤字は実行時にキーボードから入力する内容
初項:0 公差:3 項数:123 第 1 項 = 0⏎ 第 2 項 = 3⏎ 第 3 項 = 6⏎ ... (中略) ... 第 123 項 = 366⏎ この数列の和 = 22509⏎
- 【プログラムの実行例】(その3)※赤字は実行時にキーボードから入力する内容
初項:18 公差:9 項数:365 第 1 項 = 18⏎ 第 2 項 = 27⏎ 第 3 項 = 36⏎ ... (中略) ... 第 365 項 = 3294⏎ この数列の和 = 604440⏎
【過去にあったミス(減点となり,やり直しを命じられる)】
■ 上の 3 種類の実行例と答えが違っている(きちんと確認していない).
特に,合計値(最後に出力される和)が間違っていることを見落としている.
■ 合計値を求めるための変数(例えば sum)を for 文に先立って 0 に初期化していない.
(必ず sum = 0; を for 文より前に書くこと!)
■ 注意書きを見落としていて「等差数列の和の公式」を使ってしまっている.
■ インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).
← [ 練習1 (p0501.c) ]
ミスが無いことを確認したら次の問題へ → [ 練習3 (p0503.c) ]