java统计每组实验数据中的最大值,最小值,平均值。
第一行包含一个整数n(1<=n<=100),表示实验数据的组数(即测试用例的个数)。每个测试用例的输入有2行,第一行包含一个整数k(1<=k<100),表示这组实验中数据...
第一行包含一个整数n(1<=n<=100),表示实验数据的组数(即测试用例的个数)。每个测试用例的输入有2行,第一行包含一个整数k (1<=k<100),表示这组实验中数据的个数。第二行中包含k个实验数据(注意这些实验数据可能有小数点)。
输出
每个测试用例的输出单独占一行,分别输出该组实验数据中的最大值、最小值、平均值,结果全部保留2位小数。
样例输入
2
3
3 4 5
5
2.3 2.5 1.2 3.0 4.1
样例输出
5.00 3.00 4.00
4.10 1.20 2.62 展开
输出
每个测试用例的输出单独占一行,分别输出该组实验数据中的最大值、最小值、平均值,结果全部保留2位小数。
样例输入
2
3
3 4 5
5
2.3 2.5 1.2 3.0 4.1
样例输出
5.00 3.00 4.00
4.10 1.20 2.62 展开
2个回答
展开全部
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.Scanner;
public class Test {
private static String readDataFromConsole(String prompt) {
Scanner scanner = new Scanner(System.in);
System.out.print(prompt);
return scanner.nextLine();
}
private static void handArray(String input) {
if( null == input || "".equals(input)){
System.out.println("输入参数不能为空");
return;
}
DecimalFormat df=new DecimalFormat("#.00");
String[] tempArray = input.split(" ");
Double min = null;
Double max = null;
BigDecimal total = new BigDecimal(0.0);
for(String temp : tempArray){
if(min == null){
min = Double.parseDouble(temp);
}else{
if( min > Double.parseDouble(temp)){
min = Double.parseDouble(temp);
}
}
if(max == null){
max = Double.parseDouble(temp);
}else{
if( max < Double.parseDouble(temp)){
max = Double.parseDouble(temp);
}
}
total = total.add(new BigDecimal(Double.parseDouble(temp))) ;
}
BigDecimal ave = total.divide(new BigDecimal(tempArray.length), 2);
System.out.println(df.format(min) +" "+df.format(max)+" "+df.format(ave.doubleValue()));
}
public static void main(String[] args) {
Integer repeat = new Integer(1);
while ( repeat > 0 ){
String str = readDataFromConsole("Please input running time:");
repeat = Integer.parseInt(str);
if( repeat <= 0 || repeat > 100){
System.out.println("Input running time number must between 0 and 100 ");
}else{
String[] inputArrays = new String[repeat*2];
for(int i=0; i < repeat*2; i++ ){
Scanner scanner = new Scanner(System.in);
inputArrays[i] = scanner.nextLine();
}
System.out.println("输出");
for(String input: inputArrays){
if(input.split(" ").length>1){
handArray(input);
}
}
repeat=0;
}
}
}
}
输入输出:
Please input running time:2
3
3 6 9
5
1.9 1.8 3.44 5.6 6.7
输出
3.00 9.00 6.00
1.80 6.70 3.89
展开全部
DecimalFormat df = new DecimalFormat("0.00");
float[][] test = {
{2},
{3},
{3,4,5},
{5},
{2.3f,2.5f,1.2f,3.0f,4.1f},
};
for(int i=0;i<test[0][0];i++){
float f = 0f;//和
float maxf =0f;//最大数
float minf =100f;//最小数
for(int j=0;j<test[i*2+1][0];j++){
if(test[(i+1)*2][j]>maxf)
maxf = test[(i+1)*2][j];
if(test[(i+1)*2][j]<minf)
minf = test[(i+1)*2][j];
f += test[(i+1)*2][j];
}
System.out.println("第"+(i+1)+"组:"+df.format(maxf)+","+df.format(minf)+","+df.format(f/test[i*2+1][0]));
}
float[][] test = {
{2},
{3},
{3,4,5},
{5},
{2.3f,2.5f,1.2f,3.0f,4.1f},
};
for(int i=0;i<test[0][0];i++){
float f = 0f;//和
float maxf =0f;//最大数
float minf =100f;//最小数
for(int j=0;j<test[i*2+1][0];j++){
if(test[(i+1)*2][j]>maxf)
maxf = test[(i+1)*2][j];
if(test[(i+1)*2][j]<minf)
minf = test[(i+1)*2][j];
f += test[(i+1)*2][j];
}
System.out.println("第"+(i+1)+"组:"+df.format(maxf)+","+df.format(minf)+","+df.format(f/test[i*2+1][0]));
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询