任何人都可以帮我解决这个错误吗? 我无法纠正这段代码。 我无法理解错误。
import java.io.*;
import java.util.Scanner;
public class findMax{
public static int findMax(int[] arr){
int max = 0;
for (int i = 1; i < value.length; i++){
if (value[i] > max){
max = value[i];
}
}
return max;
}
public static void main(String[] args){
int value[];
Scanner in = new Scanner(System.in);
value = in.nextInt();
findMax(value);
}
}
答案 0 :(得分:1)
在函数findMax
中,您需要与数组变量名称保持一致(您当前正在传递int[] arr
但访问value
)。此外,您不希望将max
默认为0
(您可以使用arr[0]
)。像,
public static int findMax(int[] arr) {
int max = arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
接下来,您需要实例化并将值分配到您的数组中(并使用findMax
的结果执行某些操作,因为结果不是&#39;使用)。有几种方法可以做到这一点。一个可能是,
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int[] value = new int[] { in.nextInt() };
int max = findMax(value);
System.out.printf("The max value in %s is %d.%n", Arrays.toString(value), max);
}
或者,您可以像
一样创建数组int[] value = new int[1];
value[0] = in.nextInt();
,如果您在if
中使用Math.max(int, int)
findMax
public static int findMax(int[] arr) {
int max = arr[0];
for (int i = 1; i < arr.length; i++) {
max = Math.max(max, arr[i]);
}
return max;
}
答案 1 :(得分:-1)
Try this
public static int findMax(ArrayList<Integer> arr){
int max = arr.get(0);
for (int i = 1; i < arr.size(); i++){
if (arr.get(i) > max){
max = arr.get(i);
}
}
return max;
}
public static void main(String[] args){;
Scanner in = new Scanner(System.in);
ArrayList<Integer> value = new ArrayList<Integer>();
System.out.print("Enter integers please ");
System.out.println("(EOF or non-integer to terminate): ");
while (in.hasNextInt()) {
value.add(in.nextInt());
}
System.out.println(findMax(value));
}
答案 2 :(得分:-1)
import java.util.ArrayList;
import java.util.Scanner;
public class Stack{ public static int findMax(ArrayList<Integer> arr){
int max = 0;
for (int i = 1; i < arr.size(); i++){
if (arr.get(i) > max){
max = arr.get(i);
}
}
return max;
}
public static void main(String[] args){;
Scanner in = new Scanner(System.in);
ArrayList<Integer> value = new ArrayList<Integer>();
System.out.print("Enter integers please ");
System.out.println("(EOF or non-integer to terminate): ");
while (in.hasNextInt()) {
value.add(in.nextInt());
}
System.out.println(findMax(value));
}}