蜂之谷
public static void main(String[] args) {
//double[] is = { 1.23, 2.05, 4.0, 0.01, 0.12 };
double[] in = new double[10];//最多10个,那就定义长度为10的数组就行了
Scanner input = new Scanner(System.in);
int count = 0;//记录输入的个数
for (int i = 0; i
double result = input.nextDouble();
if(result
break;
}
in[i] = result;//将输入结果保存到数组
count++;
}
double[] is = new double[count];//由于不好取得输入数据的长度,重新定义一个数组
for (int i = 0; i
is[i] = in[i];
}
double max = is[0];
double min = is[0];
double sum = 0;
double ave = 0.0;
double StanDev = 0.0;
for (int i = 0; i
if (is[i] > max) {
max = is[i];
}
if (is[i]
min = is[i];
}
sum += is[i];
}
sum = getDouble(sum);
ave = sum / is.length;
ave = getDouble(ave);
//double square = 0;
//for (int i = 0; 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
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();
}不知道这样写明白么,暂时没想到还有什么好的办法