我正在调用一个数组并返回根据另一个数组排序的另一个数组。
我认为我的方法是正确的,但是当我尝试从主方法中的新数组中打印出来时,我收到一条错误消息,
“无法将 B 解析为变量
。”
B 是我的方法应返回的新数组的名称。
提前致谢。
package sort;
public class SortByFinal {
public static int [][] sortByFinal(int n, int [][] A)
{
int [][]B = new int [n][3];
int max = 0;
for(int i =0; i<n; i++)
{
for(int j = i; j<n; j++)
{
max = Math.max(A[i][1], max);
}
for(int k = i; k<n; k++)
{
if(A[k][1] == max)
{
B[k][0] = A[k][0];
B[k][1] = A[k][1];
B[k][2] = A[k][2];
}
}
}
return B;
}
public static void main(String []args)
{
int num = 5;
int[][] now = new int [num][3];
now[0][0] = 2342;
now[0][1] = 88;
now[0][2] = 98;
now[1][0] = 3901;
now[1][1] = 75;
now[1][2] = 71;
now[2][0] = 1444;
now[2][1] = 60;
now[2][2] = 85;
now[3][0] = 5327;
now[3][1] = 95;
now[3][2] = 80;
now[4][0] = 4888;
now[4][1] = 83;
now[4][2] = 100;
//int [][] B = new int[num][3];
sortByFinal(num, now);
for(int i = 0; i<num; i++)
{
for(int j = 0; j<3; j++)
{
System.out.print(B[i][j]);//this gives me the "B cannot be resolved to a variable."
System.out.print(" ");
}
System.out.println();
}
}
}
最佳答案
B
在 sortByFinal()
中定义,但不在 main()
中定义。要解决此问题,您可以将 main 更改为以下内容:
int[][] B = sortByFinal(num, now);
由于 sortByFinal(num, now)
返回一个 int[][]
,因此这将起作用。
在您的代码中,您正在调用该函数,但不对返回值执行任何操作,并且您无权访问其他方法的局部变量;因此,该消息。
关于java - 调用数组并返回不同数组的方法会给出无法解析 B 到变量错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20317173/