要求用户输入数字(可以带小数),当用户输入的数字多过10个或者用户输入了负数程序就停止要求输入然后显示计算结果(大于10个的数或者负数在计算时需忽略)(用数组来储存)输出结果示例:用户输入以下6个数:1.232.054.00.010.12-1程序显示的结果为:总数=7.41平均数=1.48最大数=4.0最小数=0.01标准差=1.64
3 回答
蜂之谷
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
提交
取消
