嘿,我写这个(fortran)的目的是找到一堆点的最小生成树(它们的syscount)。我知道这种方法有效,因为我今天早些时候用 javascript 编写了它。虽然 js 很慢,但我想看看 fortran 会快多少!!唯一的问题是它不起作用,我遇到了一个烦人的错误;
prims.f95:72.43:
if((check == 1) .and. (path(nodesin(j))(k) < minpath)) 然后
1
错误:在 (1) 处的表达式中应有右括号
这到底是怎么回事?!该行的第 43 个字符是“路径”的“h”
nodesin(1) = 1
do i = 1,syscount-1
pathstart = -1
pathend = -1
minpath = 2000
do j = 1,i
do k = 1, syscount
check = 1
do l = 1, i
if(nodesin(l) == k) then
check = 0
end if
end do
if((check == 1) .and. (path(nodesin(j))(k) < minpath)) then
minpath = path(nodesin(j))(k)
pathstart = nodesin(j)
pathend = k
end if
end do
end do
nodesin(i+1) = pathend
minpaths(i)(1) = pathstart
minpaths(i)(2) = pathend
end do
另外,我对fortran还很陌生,所以我还有其他一些问题;
我可以用 && 代替 .and 吗??
是否有许多其他语言版本的 for(object in list){} 循环?
是否有 php 函数 in_array 的版本?即 bool in_array(needle,haystack),如果有,是否有比以下更好的方法:
check = false
Asize = size(array)
do i = 1, Asize
if(array(i) == needle) then
check = true
end if
end do
然后使用检查变量来查看它是否存在?
(我之前没有在stackoverflow上发布过任何东西。如果我违反了很多礼仪,请不要生气!)