题目
读入 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