練習 [1] 演算とデータ型(5/5)

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

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

以下の例のように実行できるプログラムを作りなさい.
ただし,ファイル名は p0105a.c とする.
なお,この問題では入力される整数が 3 以上であると仮定してプログラムを作ってよい.

このプログラムでは 3 以上の整数 n を入力として受け取り,フィボナッチ数列の第1項から第 n 項までを出力させる.さらに,第 n 項までを出力し終わった後に,n項と第n-1項の比を出力させている.
ちなみにこの値は n が大きくなると黄金比 (1 + √5)/2 =1.618… に収束していくことが知られている.
なお,比率を出力するにあたって,小数点以下の桁数を指定する必要はない(%f で出力してよい).

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

【補足説明】
フィボナッチ数列とは 1, 1, 2, 3, 5, 8, 13, … と続く数列であり,第 k 項を fk で表す時,
  fk = fk-1 + fk-2
という漸化式(ただし,f1=f2=1)で定義される.

  • 【プログラムの実行例】(その1)赤字は実行時にキーボードから入力する内容
整数を 1 つ入力してください:3
1 1 2
2.000000
  • 【プログラムの実行例】(その2)赤字は実行時にキーボードから入力する内容
整数を 1 つ入力してください:10
1 1 2 3 5 8 13 21 34 55
1.617647
  • 【プログラムの実行例】(その赤字は実行時にキーボードから入力する内容
整数を 1 つ入力してください:20
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765
1.618034

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


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