You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

实现筛选double数组中大于平均值元素的方法及输出调试问题

解决你的数组筛选问题:无输出原因及修复方案

嘿,我看了你写的代码,现在没有输出主要是因为几个逻辑上的小问题,我帮你拆解一下并修复:

首先说说平均值计算的错误

你现在是在循环里每加一个元素就除以数组长度,这会把平均值算错!比如原数组总和是55,长度10,正确平均值是5.5,但你每次加完就除以10,结果会完全不对。应该先把所有元素的总和加完,循环结束后再除以长度:

原来的错误代码片段:

for (double i : m) {
    mittelw+=i;
    mittelw= mittelw/(double)m.length; // 这里不该放在循环里!
}

修复后:

for (double num : m) {
    mittelw += num; // 先累加所有元素
}
mittelw = mittelw / m.length; // 循环结束后再算平均值

然后是遍历数组的循环完全没执行

你写的循环条件是i>m.length,但数组的索引是从0到m.length-1,这个条件永远不成立,循环根本跑不起来,新数组自然是空的,所以没输出。而且你初始化的neuesArray长度是0,直接给它赋值还会报错数组越界。

这里推荐用ArrayList来动态收集符合条件的元素,最后再转成double[],这样就不用提前知道数组长度了。

完整的修复代码

import java.util.ArrayList;
import java.util.List;

public class aufgabe1 {
    public static double[] mittelwert(double[] m) {
        // 先处理空数组的情况,防止除以0报错
        if (m == null || m.length == 0) {
            return new double[0];
        }
        
        double mittelw = 0;
        // 计算所有元素的总和
        for (double num : m) {
            mittelw += num;
        }
        // 计算平均值
        mittelw = mittelw / m.length;
        
        // 用ArrayList收集大于平均值的元素
        List<Double> tempList = new ArrayList<>();
        for (double num : m) {
            if (num > mittelw) {
                tempList.add(num);
            }
        }
        
        // 把ArrayList转成double数组
        double[] neuesArray = new double[tempList.size()];
        for (int i = 0; i < tempList.size(); i++) {
            neuesArray[i] = tempList.get(i);
        }
        
        return neuesArray;
    }

    public static void main(String[] args) {
        double[] x = {1,2,3,4,5,6,7,8,9,10};
        double[] result = mittelwert(x);
        
        // 遍历输出结果
        for (double z : result) {
            System.out.print(z + " ");
        }
        System.out.println();
    }
}

运行结果说明

运行这段代码后,你会看到输出:6.0 7.0 8.0 9.0 10.0,这正是原数组里大于平均值(5.5)的元素,完全符合你的需求。

另外,主方法里我调整了输出的写法,先接收返回的数组再遍历,这样逻辑更清晰,也能确保输出所有结果。

内容的提问来源于stack exchange,提问作者RYU5

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 10:04:45