要求用户输入数字(可以带小数),当用户输入的数字多过10个或者用户输入了负数程序就停止要求输入然后显示计算结果(大于10个的数或者负数在计算时需忽略)(用数组来储存)输出结果示例:用户输入以下6个数:1.232.054.00.010.12-1程序显示的结果为:总数=7.41平均数=1.48最大数=4.0最小数=0.01标准差=1.64
3 回答
![?](http://img1.sycdn.imooc.com/546353070001b3eb01000097-100-100.jpg)
蜂之谷
TA贡献564条经验 获得超863个赞
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(); }
添加回答
举报
0/150
提交
取消