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

Java实现用户输入数值的平均值、最值计算求助(非Math类方法)

手动实现数值的平均值、最小值和最大值(不用Math.min/max)

嘿,我懂你现在的困扰——已经能算出平均值和最大值,但最小值还没搞定,而且不想依赖Math.min()和Math.max()方法对吧?咱们直接用基础的循环和比较逻辑来解决,完全不用现成的工具类!

完整修改后的代码

import java.text.DecimalFormat;
import java.util.Scanner;

public class ProblemSet3_1 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        DecimalFormat df = new DecimalFormat("#.##"); // 格式化输出保留两位小数

        System.out.print("请输入要计算的数值个数:");
        int count = input.nextInt();

        // 初始化变量:总和、最小值、最大值
        double sum = 0;
        double minValue = 0;
        double maxValue = 0;

        for (int i = 1; i <= count; i++) {
            System.out.print("请输入第" + i + "个数值:");
            double num = input.nextDouble();
            sum += num;

            // 处理第一个输入的数值,初始化最小和最大值
            if (i == 1) {
                minValue = num;
                maxValue = num;
            } else {
                // 手动比较更新最小值
                if (num < minValue) {
                    minValue = num;
                }
                // 手动比较更新最大值
                if (num > maxValue) {
                    maxValue = num;
                }
            }
        }

        // 计算平均值
        double average = sum / count;

        // 输出结果
        System.out.println("平均值:" + df.format(average));
        System.out.println("最小值:" + df.format(minValue));
        System.out.println("最大值:" + df.format(maxValue));

        input.close();
    }
}

关键逻辑说明

  • 初始化最小/最大值:第一次输入数值时,直接把它赋值给minValue和maxValue,这样就不会出现初始值(比如0)和输入数值范围不匹配的问题(比如输入全是负数的情况)。
  • 手动更新最小值:每次输入新数值后,和当前的minValue比较,如果新数值更小,就把minValue替换成这个新数值。
  • 手动更新最大值:同理,每次输入新数值后,和当前的maxValue比较,如果新数值更大,就替换maxValue。
  • 平均值计算:用double类型存储总和和平均值,避免整数除法导致的精度丢失问题,再用DecimalFormat格式化输出,让结果更美观。

这样改完之后,就能完整显示平均值、最小值和最大值啦,完全没用到Math类的方法,都是基础的逻辑实现~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:54:03