【发布时间】:2015-01-24 14:24:57
【问题描述】:
我正在尝试将一个fortran程序翻译成c++版本,然后我发现了这样的代码:
100 DO 120 I=2,7
DO 110 J=1,3
IF(IU(J)/I*I-IU(J))120,110,120
110 CONTINUE
GO TO 130
120 CONTINUE
GO TO 150
130 DO 140 J=1,3
140 IU(J)=IU(J)/I
GO TO 100
150 CONTINUE
END
而END 就结束了。
我的 c++ 版本是:
bool flag=true;
while(flag){
flag=false;
for (int i = 2; i <= 7; i++) {
for (int j = 0; j < 3; j++) {
if ((IU[j]/i*i==IU[j])) {
flag=true; break;
}
else {
continue;
}
}
if (!flag) {
break;
}
else {
for (int j = 0; j < 3; j++) {
IU[j]=IU[j]/i;
}
}
}
}
我确定这是错误的,但无法找出正确的。那么如何将fortran代码翻译成c++呢?
【问题讨论】:
-
尝试使用 f2c,会拯救你的理智
-
先画流程图。 f2c 在生成可读代码方面从来都不是特别好,我看不出它如何拯救任何人的理智。
-
第一个
if语句是arithmetic if...它可能不会像您期望的那样;-) -
@Cyber 哈哈哈。很有趣。
标签: c++ fortran fortran77 do-loops