第二题
程序实现目标:
求一个整型数组中元素的平均值,并统计其中大于和小于此平均值的元素的个数。
程序要求:
输入:整型数组中的元素个数及各个元素。
输出:整型数组中元素的平均值,大于和小于此平均值的元素的个数。
import java.util.HashMap;
import java.util.Map;
/**
* 程序实现目标:求一个整型数组中元素的平均值,并统计其中大于和小于此平均值的元素的个数。
* 程序要求:输入:整型数组中的元素个数及各个元素。
* 输出:整型数组中元素的平均值,大于和小于此平均值的元素的个数。
* @author lx
*/
public class Test {
public static void main(String[] args) {
// 平均数等于元素的情况无特殊处理
int[] a = {4, 4, 4};
count(a.length, a).forEach((k, v) -> System.out.println(k + "----" + v));
}
/**
* @param x 整型数组中的元素个数
* @param arr 各个元素
* @return 整型数组中元素的平均值,大于和小于此平均值的元素的个数
*/
public static Map<String, Object> count(int x, int[] arr) {
// 元素平均值
int average = 0;
int sum = 0;
for (int i = 0; i < x; i++) {
sum += arr[i];
}
average = sum / x;
// 大于平均值的元素个数
int i = 0;
// 小于平均值的元素个数
int j = 0;
for (int a = 0; a < x; a++) {
if (arr[a] > average) {
i++;
}
if (arr[a] < average) {
j++;
}
}
// 返回结果用map封装
Map<String, Object> map = new HashMap<String, Object>();
map.put("average", average);
map.put("i", i);
map.put("j", j);
return map;
}
}