题目

读入 n 个数,求最大值、最小值与平均值

思路

本题读入 n 个数,求最大值、最小值和平均值。 先读入数组,一遍循环同时维护 min、max、sum;平均值为 sum/n,用 double 计算再输出。

解题分析

一遍扫描同时维护 max、min、sum,读完再算平均。不要先求 max 再扫一遍 min,多一次 O(n) 没必要。

完整程序

import java.io.*;

public class Main {
    public static void main(String[] args) {
        int n = 4;
        int maxv = Integer.MIN_VALUE, minv = Integer.MAX_VALUE;
        long sum = 0;
        for (int i = 0; i < n; i++) {
            int x = 3;
            if (x > maxv) maxv = x; if (x < minv) minv = x; sum += x;
        }
        System.out.printf("max=%d min=%d avg=%.2f%n", maxv, minv, sum * 1.0 / n);
    }
}

运行示例

输出:

max=4 min=1 avg=2.50