練習 [4] while 文(教科書では主に 4 章が対応)(5/5)

練習 5(提出プログラム名:p0405.c)※必須ではない

この練習問題は必須ではない(提出しなくてもよい)が適切に解けていれば加点の対象とする.

サンプルプログラム 5 (sample5.c)p0405.c という別の名前のファイルにコピーしなさい.そして,p0405.c を編集して以下の例のように実行できるプログラムを作りなさい.
なお,この問題では入力される整数が 3 以上であると仮定してプログラムを作ってよい.

このプログラムではサンプルプログラム5で行われているフィボナッチ数列の出力部分を変更し,x を出力する代わりに直前の値(b)との比(x/b)を繰り返し表示させている.
ちなみにこの値は黄金比 (1 + √5)/2 =1.618… に収束していくことが知られている.
なお,x/b を出力するにあたって,小数点以下の桁数を指定する必要はない(%f で出力してよい).

※この問題は while の練習を目的としているので,これ以外の構造(do-while もダメ)で作った場合は不正解と見なす.

【ヒント】
x/b をそのまま計算させると「int 型と int 型の割り算」になって小数点以下が切り捨てられます.
したがって,第 2 回の講義で学んだように,x の方は double 型にキャストしてあげる必要があります.

  • 【プログラムの実行例】(その1)赤字は実行時にキーボードから入力する内容
整数を 1 つ入力してください:3
2.000000
  • 【プログラムの実行例】(その2)赤字は実行時にキーボードから入力する内容
整数を 1 つ入力してください:20
2.000000
1.500000
1.666667
1.600000
1.625000
  • 【プログラムの実行例】(その3)赤字は実行時にキーボードから入力する内容
整数を 1 つ入力してください:100
2.000000
1.500000
1.666667
1.600000
1.625000
... (途中省略) ...
1.618182

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


第4回(Cプログラミング;3 限目の方)の練習問題は以上の5問です.
p0401.c ~ p0405.c を Moodle から提出してください.※ただし,p0405.c は必須ではないです.
くれぐれも各問題で記載されている注意事項や「過去にあったミス」を見落とさないようにしてください.特に毎回のように指摘を受けている人はよりいっそう慎重に確認してください.
なお,コンパイルエラーや無限ループになるプログラムを 1 個でも提出した場合は総合評価を 0 点とするので十分に注意すること.
なお,提出後に間違いに気付いた場合,〆切前であれば差し替え(上書き)は可能です.

【要注意】
前回同様,インデントの不備を指摘されることのないようくれぐれも注意してください.
自分は大丈夫だと過信せず,VSCode での自動インデントチェックを確実に行ってから提出してください.