Вы объявили класс MaxSumArray внутри статического метода main.
А вызов метода getMaxSumArray реализовали в нестатическом методе main внутри этого же класса. Но он никогда не будет вызван, так как его некому вызывать.
Я убрал лишний класс и вынес метод getMaxSumArray из метода main, чтобы они стояли рядом. Также я объявил его статическим, чтобы статический main мог с ним работать:
public class Main
{
public static void main(String[] args) {
int[] array1 = {1, 2, 3};
int[] array2 = {4, 5, 6, 7};
int[] array3 = {8, 9, 10, 11, 12};
int[] resultArray = getMaxSumArray(array1, array2, array3);
int sum = 0;
for (int num : resultArray) {
sum += num;
}
System.out.println("Сумма элементов самого большого массива: " + sum);
}
public static int[] getMaxSumArray(int[] arr1, int[] arr2, int[] arr3) {
int sum1 = 0;
int sum2 = 0;
int sum3 = 0;
for (int num : arr1) {
sum1 += num;
}
for (int num : arr2) {
sum2 += num;
}
for (int num : arr3) {
sum3 += num;
}
if (sum1 >= sum2 && sum1 >= sum3) {
return arr1;
} else if (sum2 >= sum1 && sum2 >= sum3) {
return arr2;
} else {
return arr3;
}
}
}
Но вообще программа работает неоптимально, так как для массива с самой большой суммой эта сумма считается дважды - один раз в getMaxSumArray и потом еще раз в main.
public static void main(String[] args) {
class MaxSumArray {
public int[] getMaxSumArray(int[] arr1, int[] arr2, int[] arr3) {
int sum1 = 0;
int sum2 = 0;
int sum3 = 0;
for (int num : arr1) {
sum1 += num;
}
for (int num : arr2) {
sum2 += num;
}
for (int num : arr3) {
sum3 += num;
}
if (sum1 >= sum2 && sum1 >= sum3) {
return arr1;
} else if (sum2 >= sum1 && sum2 >= sum3) {
return arr2;
} else {
return arr3;
}
}
public void main(String[] args) {
int[] array1 = {1, 2, 3};
int[] array2 = {4, 5, 6, 7};
int[] array3 = {8, 9, 10, 11, 12};
int[] resultArray = getMaxSumArray(array1, array2, array3);
int sum = 0;
for (int num : resultArray) {
sum += num;
}
System.out.println("Сумма элементов самого большого массива: " + sum);
}
}
}
}
Тут нужно написать метод, который принимает три массива, а возвращает массив, сумма элементов которого самая большая. Вроде код правильный, но не выводится сумма элементов которая самая большая