gpt4 book ai didi

java - 将数组元素传递给接受整数的方法 (Java)

转载 作者:行者123 更新时间:2023-12-02 12:32:25 27 4
gpt4 key购买 nike

我正在尝试创建一个数字数组,将它们传递给一个仅接受整数作为参数的静态方法,并将最大整数返回到要打印的 main (这些是作业规范)。 max 方法本身有效,但我无法将 main 中输入的数组传递给函数,并获取最大值。如有任何帮助,我们将不胜感激。

import java.util.Scanner;

public class findMax {
public static int max(int val1, int val2, int val3) {
int[] intArray = new int[3];
val1 = intArray[0];
val2 = intArray[1];
val3 = intArray[2];
int max = Math.max(Math.max(val1, val2), val3);
System.out.println(max);
return max;
}

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] intArray = new int[3];
System.out.println("Enter 3 integers: ");
for (int i = 0; i < intArray.length; i++) {
intArray[i] = sc.nextInt();
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i < intArray.length; i++) {
if (i > 0) {
sb.append(", ");
}
sb.append(intArray[i]);
}
System.out.println("Input values: " + sb.toString());
max(intArray[0], intArray[1], intArray[2]);
System.out.println(max(intArray[0], intArray[1], intArray[2]));
sc.close();
}

}

最佳答案

您的 max 方法会用零覆盖其参数,因此它本身无法工作。

public static int max(int val1, int val2, int val3) {
int[] intArray = new int[3]; // {0, 0, 0}
val1 = intArray[0]; // <-- val1 = 0
val2 = intArray[1]; // <-- val2 = 0
val3 = intArray[2]; // <-- val3 = 0
int max = Math.max(Math.max(val1, val2), val3);
System.out.println(max);
return max;
}

应该是这样的

public static int max(int val1, int val2, int val3) {
return Math.max(Math.max(val1, val2), val3);
}

然后您的 main 方法应该按预期工作(但您不需要像这样调用 max 两次,只需在打印时调用一次)。

// max(intArray[0], intArray[1], intArray[2]);
System.out.println(max(intArray[0], intArray[1], intArray[2]));

您可能更喜欢 Arrays.toString(intArray); 而不是当前的 for 循环。

或者,您可以将 max 设为可变参数(假设您使用的是 Java 8+,请使用 IntStream)。就像,

public static int max(int... values) {
return IntStream.of(values).max().orElse(-1);
}

可以这样称呼

System.out.println(max(intArray));

System.out.println(max(1, 2, 3, 4, 5));

关于java - 将数组元素传递给接受整数的方法 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45249582/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com