
問題7-1:次の配列データの合計と平均を求めるプログラムを作成してください。
double [] x = { 12.3, 45.4, 45.9, 3.56, 6.6, 8.9, 2.3, 0.5, 4.3, 1.2, };
(自分が書いたもの)
public class Sample8_4 {
public static void main(String[] args) {
double[] x = { 12.3, 45.4, 45.9, 3.56, 6.6, 8.9, 2.3, 0.5, 4.3, 1.2, };
double sum = 0.0;
for (int i = 0; i < x.length; i++) {
;
sum += x[i];
double average = sum / x.length;
System.out.println("平均:" + average + ",合計:" + sum);
}
}
}
(実行結果)
平均:1.23,合計:12.3
平均:5.7700000000000005,合計:57.7
平均:10.36,合計:103.6
平均:10.716,合計:107.16
平均:11.376,合計:113.75999999999999
平均:12.266,合計:122.66
平均:12.495999999999999,合計:124.96
平均:12.546,合計:125.46
平均:12.975999999999999,合計:129.76
平均:13.095999999999998,合計:130.95999999999998
(答え)
総計:130.95999999999998, 平均:13.095999999999998
for文についていまいち理解できていません(拡張for文も)
回答よろしくお願いします。
No.1ベストアンサー
- 回答日時:
public class Sample8_4 {
public static void main(String[] args) {
double[] x = { 12.3, 45.4, 45.9, 3.56, 6.6, 8.9, 2.3, 0.5, 4.3, 1.2, };
double sum = 0.0;
for (int i = 0; i < x.length; i++) {
sum += x[i];
}
double average = sum / x.length; //ここ2行を外に出すだけ。
System.out.println("平均:" + average + ",合計:" + sum);
}
}
No.2
- 回答日時:
今JAVAの実行環境がないので実行していませんがこんな感じでできると思います。
double型は計算すると誤差が発生します。
ですのでBigDecimalクラスを使って計算します。
(そこまで正確に計算する必要なければdouble型でもOKです)
public class Sample8_4 {
public static void main(String[] args) {
double[] x = { 12.3, 45.4, 45.9, 3.56, 6.6, 8.9, 2.3, 0.5, 4.3, 1.2, };
BigDecimal sum = new BigDecimal();
for (double y : x) { //拡張for文
sum = sum.add(new BigDecimal(y));
}
BigDecimal average = sum.divide(x.length, 5, BigDecimal.ROUND_HALF_UP);//小数点以下第5位まで求める
System.out.println("平均:" + average.toString() + ",合計:" + sum.toString());
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Javaで何パーセント%かを表示...
-
実数からの小数部の取得
-
Javaによる利率計算の実装方法
-
べき乗
-
0dの意味を教えてください
-
System.err. printlnとSystem.o...
-
ループ処理の際、最後だけ","を...
-
オブジェクトの中のプロパティ...
-
動的配列が存在(要素が有る)か...
-
flush()とclose()について
-
IF関数でEmpty値を設定する方法。
-
C#から、C++で作成したdll内の...
-
java キーボード入力された値の...
-
C言語のポインターに関する警告
-
ORA-01858: 数値を指定する箇所...
-
yyyymmddからyyyy/mm/d...
-
EclipseでJava
-
変数を動的に利用するには?
-
Java配列でNullPointerExceptio...
-
Javaで改行などが出来ないのです。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実数からの小数部の取得
-
double型変数値の整数部分のみ...
-
0dの意味を教えてください
-
Javaで何パーセント%かを表示...
-
最大値と最小値の求め方
-
newton法のjacobi
-
プログラマーの達人という本の...
-
先に計算したほうがいいのでし...
-
べき乗
-
Javaによる利率計算の実装方法
-
java のfor文について質問です。
-
乱数について
-
x^2+y^2<n^2
-
LU分解を利用した逆行列のプロ...
-
分を表す数値(int型)を、小数...
-
プログラムで指数関数を求めよ...
-
double型の足し算について
-
Javaコンパイルエラー
-
掛け算演算を使わない掛け算
-
乱数のdouble型について
おすすめ情報