gpt4 book ai didi

java - 试图在矩阵中找到鞍点时出错

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:18:54 25 4
gpt4 key购买 nike

我已经编写了一些代码来查找矩阵的鞍点(矩阵中的一个元素,它是其对应行的最大元素,同时也是其列的最小元素)的位置。但是,有一个错误说:

The local variable col may not have been initialized
at SaddlePoint.findSaddle(SaddlePoint.java:41)
at SaddlePoint.main(SaddlePoint.java:52)

我不明白为什么会这样说。任何帮助将不胜感激。下面我给出了我的代码:

public class SaddlePoint {

int arr[][]=new int[4][5];

public SaddlePoint(int x[][])
{
for(int i=0;i<arr.length;i++)
for(int j=0;j<arr[i].length;j++)
arr[i][j]=x[i][j];
}

public void display(int x[][])
{
System.out.println();
for(int i=0;i<arr.length;i++)
{for(int j=0;j<arr[i].length;j++)
System.out.print(arr[i][j]+"\t");
System.out.println();
}
}
public void findSaddle()
{
int row,col,flag;
for(int i=0;i<arr.length;i++)
{int max=arr[i][0];col=0;flag=0;
for(int j=1;j<arr[i].length;j++)
if(max<arr[i][j])
{max=arr[i][j];
col=j;
}
for(int k=0;k<arr.length;k++)
if(arr[k][col]<max)
{ flag=1;
break;
}
if(flag==0)
{row=i;
break;
}
}
if(flag==0)
System.out.println("The Position of the Saddle Point is at Row "+(row+1)+"& Column "+(col+1));
else
System.out.println("Not found.");
}

public static void main(String args[])
{
int array[][] ={{12,8,37,15,16},{2,12,21,14,13},{15,47,23,20,19},{65,57,43,21,47}};
SaddlePoint sadl=new SaddlePoint(array);
sadl.display(array);
sadl.findSaddle();
}
}

最佳答案

编译器不知道 for 循环是否会有任何迭代

for(int i=0;i<arr.length;i++)

如果数组的长度为零,则不会。因此可能存在 col=0; 从未发生且变量从未初始化的情况。

for 循环之前初始化 col

关于java - 试图在矩阵中找到鞍点时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15394109/

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