用java编写程序,创建一个一维数组,在一维数组中存放int类型的整数,编写方法,返回数组中的最大值。我写的代码运行不了

img

import java.util.Scanner;
public class lol {

 public static void main(String[] args) {
 Scanner input=new Scanner(System.in);
int[] ar=generateArray();
 
     System.out.println("最大数是:"+getMax(ar));
 }
 public static int[] generateArray( )
 {
     Scanner input=new Scanner(System.in);
    int[] a=new int[99];
    int i;
    int t=input.nextInt();
    
    for(i=0;iinput.nextInt();
    }
    return a;
 }
 public static int getMax(int[]  arr)
 {
     Scanner input=new Scanner(System.in);
     int j,m=0;
     for(j=0;jif(mreturn m;
 }

}

“Devil组”引证GPT后的撰写:
代码逻辑基本正确,但是存在一些小问题:

  • 1.在getMax方法中,不需要再创建一个Scanner对象,因为输入已经在generateArray方法中进行了,直接使用arr数组即可。
  • 2.在generateArray方法中,数组的长度应该根据输入确定,而不是固定为99。

下面是修改后的代码:

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        int[] ar=generateArray();

        System.out.println("最大数是:"+getMax(ar));
    }

    public static int[] generateArray( )
    {
        Scanner input=new Scanner(System.in);
        System.out.println("请输入数组长度:");
        int t=input.nextInt();
        int[] a=new int[t];
        System.out.println("请输入数组数据:");
        for(int i=0;i<t;i++)
        {
            a[i]=input.nextInt();
        }
        return a;
    }

    public static int getMax(int[] arr)
    {
        int m=arr[0];
        for(int j=1;j<arr.length;j++){
            if(m<arr[j]){
                m=arr[j];
            }
        }
        return m;
    }
}