- ベストアンサー
【初心者です】javaで平均値を求めたいのですが...
import java.io.*; public class ex31a { public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader (System.in)); double sum = 0.0; while(true) { System.out.print("double> "); double x = (new Double(in.readLine())).doubleValue(); if(x == 0.0) { break; } sum = sum + x; } System.out.println("avarage = " + (sum % n)); } } 基本形はこのままで、最後の部分のSystem.out.printlnの部分を直したらいいんでしょうか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
import java.io.*; public class ex31a { public static void main(String[] args) throws Exception { int n = 0; /* 個数を示すnをきちんと変数として宣言 */ BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); double sum = 0.0; while(true) { System.out.print("double> "); double x = (new Double(in.readLine())).doubleValue(); if(x == 0.0) { break; } sum = sum + x; n = n + 1;/* 個数を計算 */ } /* System.out.println("sum = " + sum ); System.out.println("n = " + n); */ /* %は余りを求めるものである。平均は/で割らないと*/ /* double/ intがどうなるのかを考えたことはないけどw */ System.out.println("avarage = " + (sum / n)); } }
その他の回答 (2)
%演算子は余りを求めるものです。 単純に全てを加算した結果を除算するだけでよいのであれば 演算子を/にするだけです。 ですが、これだと% nのnがどこにも宣言されていないので、 コンパイルエラーがでると思うのですが・・・
- fortranxp
- ベストアンサー率26% (181/684)
1.データ入力 →x 2.データ合計 sum←x+sum 3.データ数のカウント n←n+1 4.合計 avarage←sum/n import java.io.*; public class ex31a { public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader (System.in)); double sum = 0.0; while(true) { System.out.print("double> "); double x = (new Double(in.readLine())).doubleValue(); if(x == 0.0) { break; } sum = sum + x; } System.out.println("avarage = " + (sum % n)); } } 基本ですが微笑ましい。 大体少しできれば直ぐStrutsは何か変ですね。
お礼
nの宣言の仕方が分からなかったんです! なるほど、Buffered-以前でやればよかったんですね! ありがとうございます。