課題 [5] 配列(5/9)

問 5(提出プログラム名:ex0505a.c)

まず,このプログラムをダウンロードして ex0505a.c として保存しなさい.そして,これを編集して以下の処理①~⑤を実行するプログラムに仕上げなさい.
ただし,必ず for 文を使って仕上げることとする.
(なお,上のプログラムでは,
    処理②と⑤に対応する部分だけは既に完成しているので書き換えないこと)

【実現したい処理】
① 長さ SIZE の int 配列 x と,同じく長さ SIZE の double 配列 y を用意する.
② 「数列(長さ〇〇)を入力してください:」とメッセージを表示する.(作成済み)
③ SIZE 個の整数を読み込んで,それらを配列 x へ格納する.
④ 配列 x 内の各要素がそれぞれ全体に対して占める割合を算出し,それぞれの割合を配列 y へ格納する.(例えば,配列 x 内の整数の合計が 20 であり,x[0] が 5 であったならば,それが占める割合は 25% なので y[0] には 0.25 を代入する.)
⑤ 最後に,配列 x と y の内容を実行例のかたちで出力する.(作成済み)

この問題では,入力される整数はすべて 1 以上であると仮定してプログラムを作ってよいものとする.
なお,プログラム中ではマクロの定義を除いて 5 や 4 という数字を直接書いてはいけません.

  • 【プログラムの実行結果】(その1)※赤字は実行時にキーボードから入力する内容
数列(長さ5)を入力してください:5 3 2 4 6
⏎
配列内の各要素とその割合:⏎
[0] 5 (0.25)⏎
[1] 3 (0.15)⏎
[2] 2 (0.10)⏎
[3] 4 (0.20)⏎
[4] 6 (0.30)⏎

  • 【プログラムの実行結果】(その2)※赤字は実行時にキーボードから入力する内容
数列(長さ5)を入力してください:1 1 1 1 100
⏎
配列内の各要素とその割合:⏎
[0] 1 (0.01)⏎
[1] 1 (0.01)⏎
[2] 1 (0.01)⏎
[3] 1 (0.01)⏎
[4] 100 (0.96)⏎

  • 【プログラムの実行結果】(その3)※赤字は実行時にキーボードから入力する内容
数列(長さ5)を入力してください:5 5 5 5 5
⏎
配列内の各要素とその割合:⏎
[0] 5 (0.20)⏎
[1] 5 (0.20)⏎
[2] 5 (0.20)⏎
[3] 5 (0.20)⏎
[4] 5 (0.20)⏎

【過去にあったミス(実際に減点となり,やり直しを命じられた例)】
■ 実行の画面出力が上の例と違う(きちんと確認していない).
  (例1)処理④に該当する部分を書き換えてしまっている.
  (例2)割り算でのキャストを忘れている.
■ マクロ SIZE を使わずに 5 や 4 と直接書いてしまっているところがある.
■ インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).


ミスが無いことを確認したら次の問題へ → [ 問6 (ex0506a.c) ]