6
1 1 1 1 1 1
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 6 out of bounds for length 6
at m.Main11.main(Main11.java:8)
Process finished with exit code 1
这错误意思是数组长度是6,但你程序中给出的下标有6,越界了
主要是你main函数里输入有问题,arr[n] = sc.nextDouble()这句越界了,这时n是6
只需要在主函数中循环输入值就可以了,getMin和getMax函数中只需要与数组元素进行比较,不要再输入了啊
修改如下:
main函数:
double arr[] = new double[n];
for(int i=0;i<6;i++)
arr[i] = sc.nextDouble();
public static double getMax(double[] arr)
{
double max = arr[0];
for(int i=1;i<6;i++)
if(arr[i] > max)
max = arr[i];
return max;
}
public static double getMin(double[] arr)
{
double min= arr[0];
for(int i=1;i<6;i++)
if(arr[i] < min)
min = arr[i];
return min;
}
import java.util.Arrays;
import java.util.Scanner;
public class Test02 {
public static double[] getInput() {
final Scanner scanner = new Scanner(System.in);
final int n = scanner.nextInt();
double[] result = new double[n];
for (int i = 0; i < result.length; i++) {
result[i] = scanner.nextDouble();
}
return result;
}
public static double getMax(double[] arr) {
double max = arr[0];
for (int i = 1; i < arr.length; i++)
if (arr[i] > max)
max = arr[i];
return max;
}
public static double getMin(double[] arr) {
double min = arr[0];
for (int i = 1; i < arr.length; i++)
if (arr[i] < min)
min = arr[i];
return min;
}
public static double getSum(double[] arr) {
double sum = 0;
for (int i = 0; i < arr.length; i++)
sum += arr[i];
return sum;
}
public static void main(String[] args) {
final double[] input = getInput();
System.out.println(Arrays.toString(input));
System.out.println(getMax(input));
System.out.println(getMin(input));
System.out.println(getSum(input));
}
}