(1) 编写一个Java程序,定义一个类并在该类中编写函数calc,传入一个整型数组(一维数组),使其能够计算出该数组中的最大值、最小值、平均值,让主函数调用这个函数并获得这些求出的值。(两种方法)
时间: 2024-10-15 18:29:36 浏览: 42
在Java中,我们可以使用两种不同的方法来实现这个需求:
方法一:直接在类中定义静态方法
```java
public class ArrayCalculator {
// 静态方法,接收一个整数数组作为参数
public static int[] calc(int[] arr) {
if (arr == null || arr.length == 0) {
throw new IllegalArgumentException("Array is empty or null");
}
int max = arr[0];
int min = arr[0];
double sum = 0;
for (int i : arr) {
sum += i;
if (i > max) {
max = i;
} else if (i < min) {
min = i;
}
}
// 计算平均值,并将结果转换为整数
double avg = Math.round(sum / arr.length);
return new int[]{max, min, (int) avg};
}
public static void main(String[] args) {
int[] testArr = {5, 2, 8, 1, 9};
int[] result = calc(testArr);
System.out.println("Max value: " + result[0]);
System.out.println("Min value: " + result[1]);
System.out.println("Average value: " + result[2]);
}
}
```
方法二:创建一个包含这些功能的非静态内部类
```java
public class Main {
public static void main(String[] args) {
MainProgram program = new MainProgram();
int[] testArr = {5, 2, 8, 1, 9};
int[] result = program.calculateStats(testArr);
System.out.println("Max value: " + result[0]);
System.out.println("Min value: " + result[1]);
System.out.println("Average value: " + result[2]);
}
}
class MainProgram {
// 返回一个对象,包含计算方法
public int[] calculateStats(int[] arr) {
// 算法同上
// ...
}
}
```
在这两个示例中,`calc()`或`calculateStats()`方法分别负责计算数组的最大值、最小值和平均值,然后主函数会调用它们获取结果。
阅读全文