请问JAVA求和,平均数,最大数,最小数,标准差的相关代码该如何写?

要求用户输入数字(可以带小数),当用户输入的数字多过10个或者用户输入了负数程序就停止要求输入然后显示计算结果(大于10个的数或者负数在计算时需忽略)(用数组来储存)

输出结果示例:

用户输入以下6个数:

1.23

2.05

4.0

0.01

0.12

-1

程序显示的结果为:

总数=7.41

平均数=1.48

最大数=4.0

最小数=0.01

标准差=1.64

慕粉3397785
浏览 3828回答 3
3回答

蜂之谷

public static void main(String[] args) { double[] is = { 1.23, 2.05, 4.0, 0.01, 0.12 }; double max = is[0]; double min = is[0]; double sum = 0; double ave = 0.0; double StanDev = 0.0; for (int i = 0; i < is.length; i++) { if (is[i] > max) { max = is[i]; } if (is[i] < min) { min = is[i]; } sum += is[i]; } sum = getDouble(sum); ave = sum / is.length; ave = getDouble(ave); // double square = 0; // for (int i = 0; i < is.length; i++) { // square += is[i] * is[i]; // } // StanDev = Math.sqrt((square - sum*sum/is.length)/(is.length-1)); // StanDev = getDouble(StanDev); double squareSum = 0; for (int i = 0; i < is.length; i++) { squareSum += ((is[i]-ave) * (is[i]-ave)); } StanDev = Math.sqrt(squareSum/(is.length-1)); StanDev = getDouble(StanDev); System.out.println("总数:" + sum); System.out.println("最小数:" + min); System.out.println("最大数:" + max); System.out.println("平均数:" + ave); System.out.println("标准差:" + StanDev); } //四舍五入保留2为小数 private static double getDouble(double d) { BigDecimal b = new BigDecimal(d); return b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); }

慕运维8283692

先把数组初始化为0for(int i=0;i<10;i++){    读输入,如果输入为负,break.}直接把数组当十个的处理,因为0没有影响
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java