Напишите метод, который принимает 2D-массив целых чисел в качестве аргумента. Массив возвращает новый 2D-массив целых чисел того же размера (столько же строк и столбцов). Значения в возвращаемом массиве такие же , как и в массиве аргументов EXCEPT, что любые отрицательные значения сделаны положительными.Как исправить незаконный запуск компиляции выражения?
Мой метод не будет компилировать, компилятор продолжает жаловаться на мой метод, что его незаконный запуск выражения. Кажется, что он не понимает, что я написал метод, который так когда-либо был.
Это то, что я сделал:
public class Examprep1
{
public static void main (String[] args)
{
int [][] array = new int[2][4];
array[0][0]=1;
array[0][1]=5;
array[0][2]=-7;
array[0][3]=9;
array[1][0]=-2;
array[1][1]=4;
array[1][2]=6;
array[1][3]=-8;
int x;
// Using for loops to create the 2D array
for (int rows=0; rows<2; rows++)
{
for (int cols=0; cols<4;cols++)
{
System.out.print(array[rows][cols]+ " ");
}
System.out.println("");
}
System.out.println(newArray(array));
private static int[][] newArray(int[][] old)
{
int y;
int[][] current = new int [2][4];
for (int rows=0; rows<2; rows++)
{
for (int cols=0; cols<4;cols++)
{
if (old[rows][cols]<0)
{
y=Math.abs(old[rows][cols]);
old[rows][cols] = (int)Math.pow(old[rows][cols],2)/x;
}
old[rows][cols] = current[rows][cols];
}
}
return current;
}
}
}
Вы пропускаете '}' после 'System.out.println (newArray (массив)),' 'до конца main'. Вам нужно сделать это * до *, вы можете объявить 'newArray'. Затем у вас есть дополнительное закрытие '}' после 'newArray'. Наконец, где 'x' происходит из' old [rows] [cols] = (int) Math.pow (old [rows] [cols], 2)/x; '? –
Вы определили метод внутри метода. Вы не можете этого сделать –
Вы не должны полагаться на 'current = new int [2] [4]', если этот метод должен всегда быть того же размера, что и вход. Также очень непонятно, почему вы квадратизируете числа. –