練習 [6] 前半の復習(4/5)

練習 4(提出プログラム名:p0604a.c)

以下の実行例と全く同じかたちで1 個の整数(int 型) n と
それに続いて n 個の実数(double 型)を読み込み,
その正規化(min-max スケーリング)を行って出力できるプログラムを p0604a.c として作りなさい.
なお,このプログラムでは n 個の実数を長さ SIZE の double 配列に格納するものとする.
SIZE はマクロとし,16 と定義せよ.
正規化後の実数は小数点以下第 2 位までを出力することとする.

なお,この問題では n は 2 以上 SIZE 以下の整数であると仮定してプログラムを作ってよい.

【この問題での正規化(min-max スケーリング)のやり方】
いま,n 個の実数データの中で最小値を min,最大値を max とおく.

そして,ある実数データ x を
   (x - min)/(max - min)
という値に置き換えることを正規化と定義する.
こうすることですべてのデータが閉区間 [0,1] に収まるようになる.

なお,min と max が等しい場合はこれを定義できないことになるが,
この問題では min と max は値が異なると仮定してプログラムを作ってよい.

  • 【プログラムの実行例】(その1)※赤字は実行時にキーボードから入力する内容
データの個数を入力してください:5
5 個の実数を入力してください:⏎
-2 -1 0 1 2
正規化後のデータは以下の通り:⏎
x[0] = 0.00⏎
x[1] = 0.25⏎
x[2] = 0.50⏎
x[3] = 0.75⏎
x[4] = 1.00⏎

  • 【プログラムの実行例】(その2)※赤字は実行時にキーボードから入力する内容
データの個数を入力してください:3
3 個の実数を入力してください:⏎
8.5 5.5 7.5
正規化後のデータは以下の通り:⏎
x[0] = 1.00⏎
x[1] = 0.00⏎
x[2] = 0.67⏎

  • 【プログラムの実行例】(その3)※赤字は実行時にキーボードから入力する内容
データの個数を入力してください:2
2 個の実数を入力してください:⏎
12.34 -67.89
正規化後のデータは以下の通り:⏎
x[0] = 1.00⏎
x[1] = 0.00⏎

【過去にあったミス(減点となり,やり直しを命じられる)】
■ 3種類の実行例を確認せずに提出してしまっている.
■ インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).


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