【C言語】パソコン価格の値の範囲(レンジ)と平均コストを計算するプログラム
問題
個人用システム(パソコン)は、販売業者ごとに異なる価格で販売されています。
ここで、いくつかの業者が提示した価格リスト(単位:100)を見てみましょう。
25.00、30.50、15.00、28.25、58.15、
37.00、16.65、42.00、68.45、53.50
解決策
この価格データから、平均コストと値の範囲(レンジ)を計算します。
一連の数値の中で最大値と最小値の差を「範囲(レンジ)」と呼びます。つまり、範囲 = 最大値 − 最小値です。
まずは、データの中から最大値と最小値を見つけましょう。
Cプログラムの例
以下は、パソコンの価格の範囲と平均コストを計算するCプログラムです。数値を半角スペースで区切って入力し、最後に負の数を入力すると計算結果が表示されます。
#include<stdio.h>
main(){
int count;
float value, high, low, sum, average, range;
sum = 0;
count = 0;
printf("数値を1行で入力し、最後に負の数を入力してください\n");
input:
scanf("%f", &value);
if (value < 0)
goto output;
count = count + 1;
if (count == 1)
high = low = value;
else if (value > high)
high = value;
else if (value < low)
low = value;
sum = sum + value;
goto input;
output:
average = sum/count;
range = high - low;
printf("\n\n");
printf("入力個数 : %d\n", count);
printf("最大値 : %f\n最小値 : %f\n", high, low);
printf("範囲 : %f\n平均 : %f\n", range, average);
}
プログラムの処理の流れ
このプログラムは goto 文を使って入力を繰り返し受け付ける構造になっています。主な処理の流れは次のとおりです。
- 入力:scanf() で数値を1つずつ読み込みます。
- 終了条件:負の数が入力されると、output ラベルへジャンプして集計を終了します。
- 初期化:最初に入力された値は、そのまま最大値(high)と最小値(low)として記録されます。
- 比較と更新:2つ目以降の値は、現在の最大値・最小値と比較し、必要に応じて更新します。
- 合計:入力された値を順次 sum に加算していきます。
- 結果の出力:平均 = 合計 ÷ 個数、範囲 = 最大値 − 最小値 を計算して表示します。
なお、goto 文はプログラムの流れを読みにくくするため、実際の開発では while 文や for 文などのループ構造を使用することが一般的に推奨されています。
出力
上記のプログラムを実行すると、次のような出力が得られます。
数値を1行で入力し、最後に負の数を入力してください 22.4 56.8 12.3 48.6 31.4 19.0 -1 入力個数: 6 最大値: 56.799999 最小値: 12.300000 範囲: 44.500000 平均: 31.750000
補足:浮動小数点数の誤差について
出力結果で最大値が「56.799999」と表示されるのは、float 型が内部的に2進数で小数を近似して扱っているためです。「56.8」という10進数の値は2進数では正確に表現できず、微小な誤差が発生します。表示を見やすく整えたい場合は、printf の書式指定子を %.2f のようにして小数点以下の桁数を制限するとよいでしょう。
-
sin(x)とcos(x)の値を計算するC++プログラムの解説
sin(x)とcos(x)の値を計算するC++プログラム 本記事では、角度を入力として受け取り、その角度に対応するsin(x)(正弦)とcos(x)(余弦)の値を計算して結果を表示するC++プログラムを解説します。ライブラリ関数に頼らず、テイラー展開(マクローリン展開)を用いて数値を近似する手法を紹介します。 sin(x)とは sin(x)は三角関数の一つで、角度xに対する正弦の値を求めるために使用されます。直角三角形では、斜辺に対する対辺の比として定義されます。 $$\sin (x) = \displaystyle\sum\limits_{k=0}^\infty \frac{(-1)^{k
-
Excelで範囲(レンジ)を計算する方法|MIN・MAX関数の使い方を解説
統計学における「範囲(レンジ)」とは、データセットの最大値から最小値を引いて求める値のことです。データ内の値のばらつき(散らばり具合)を表す指標であり、変動性を測るのに役立ちます。範囲が大きいほど、データは広く散らばっており、変動が大きいことを意味します。幸い、Excelの関数を使えば、データの範囲はとても簡単に求められます。ここでは、その具体的な手順をご紹介します。ステップごとに解説!Excelで範囲を求める基本の手順Microsoft Excelで範囲を求める最も簡単な方法は、MIN関数とMAX関数を組み合わせることです。MAX関数はデータセットの中の最大値を返し、MIN関数は最小値を返し