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
展开
 我来答
anglewang98
2015-04-03 · TA获得超过535个赞
知道小有建树答主
回答量:420
采纳率:80%
帮助的人:287万
展开全部
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
learn_forever
2015-04-03
知道答主
回答量:5
采纳率:0%
帮助的人:4.9万
展开全部
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]));
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式