スキー・ジャンプの飛型点の採点など,スポーツ競技の採点を複数の審判で行う際は,極端な採点による影響を抑えるため,審判員全員の採点を単純に平均するのではなく,最大値と最小値を外れ値として除外した平均がしばしば用いられる.トリム平均(trim mean),刈り込み平均(truncated mean),調整平均などと呼ばれる. ここではこのトリム平均を求めるプログラムを作成しよう.


問題


標準入力から7個の実数値データを読み込み,そのデータから最大値と最小値を除外し,残った5個の実数値の平均値を標準出力に書き出すプログラムを作成せよ.

ただし,入力される実数値は半角スペースで区切られて入力されると仮定してよい. プログラムは以下の仕様を満たすこと.

  1. 入力値は$-20$から$100$の範囲とし,それ以外の値が一つでも入力された場合はOut of Rangeと出力して終了すること.
  2. 最大値となるデータが複数ある場合は,そのうちの1つのみ除外すればよい.
  3. 同様に,最小値となるデータが複数ある場合は,そのうちの1つのみ除外すればよい.
  4. 出力する平均値はprintf関数のフォーマット指定子を用い,小数点以下2位までを出力すること.
  5. 各表示は標準出力に書き出し,末尾には改行文字\nを付けること.

実行例


#は標準入力,>は標準出力を表す.

# 19.0 18.0 19.5 18.0 17.0 18.5 18.0
> 18.30
# 20.0 20.0 20.0 20.0 20.0 20.0 20.0
> 20.00

手順例



0. 準備

1. 標準入力から7個の実数値データを読み込む


2. そのデータから最大値と最小値を除外


for (i = 0; i < 7; ++i) {
  scanf("%lf", &v);
  if( tmax < v){
      tmax = v
  }
}

3. 平均値を標準出力に書き出す



手順例まとめ



参考情報



浮動小数点型の取り扱い



最大値,最小値の求め方



printfのフォーマット文字列



参考文献