- ベストアンサー
最大値と最小値の求め方
- コマンドライン引数で受け取った整数の合計・平均・最大・最小を求めるソースコードです。
- しかし、実行すると最大値と最小値が正しく出力されません。
- 問題の原因がわからず、修正方法を知りたいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
添削してみました。 ・args.length は、引数の数ですから最大値や最小値と比べるのは意味がありません。 ・int / intは結果がint になってしまうので、doubleで計算させないとdoubleに代入する意味がありません。 ------------------------------------------------------------------ class Choco{ public static void main (String[] args) { int i, v; int sum = 0; int max=Integer.MIN_VALUE; int min=Integer.MAX_VALUE; for ( i=0; i<args.length; i++){ v= Integer.parseInt(args[i]); sum += v; if(v>max) max=v; if(v<min) min=v; } double ave = (double)sum/args.length; System.out.println("合計は" + sum + "です。"); System.out.println("平均は" + ave + "です。"); System.out.println("最大値は" + max + "です。"); System.out.println("最小値は" + min + "です。"); } }
お礼
添削ありがとうございます。 また、間違いの箇所の指摘があったのでどう間違っていたのかがよく分かりました。