else if((*((array+i*n)+j) == 1) && (!path_checker(path,i,j)))
{
...
}
问题是遍历填充了1和0的* n矩阵,矩阵中的0的数量是元素总数的20%,并打印所有路径,然后打印[0]中的最短路径。 ] [0]到[n] [n],使用四个方向:上,下,左和右。 到目前为止,我已尝试实现打印所有可能的路径。但是,我陷入
的无限循环中35
48
37
...and so on infinitely (values ranging approx between 30-50)
我用path.size()检查每个实例的大小,输出有点像:
Sub testv()
Dim v As Variant
Dim i As Long
v = Application.VLookup(9, Range("A1:a3"), 1, False)
If Not IsError(v) Then
i = CLng(v)
Else
MsgBox "not Found"
End If
End Sub
任何想法如何纠正这个?
编辑:改变了一些逻辑,没有陷入无限循环。但是所有函数调用都通过函数中的“second else”和“third else”退出 - printAllPathsU(...)。谢谢!
答案 0 :(得分:0)
只要问题是如何“打印所有路径”,你应该有一个无限循环,因为有无限多的路径。如果问题是如何打印所有非自相交路径,那么这个改述就会提示如何解决问题。