我正在尝试将源代码从C ++转换为vb6:
C ++:
static double mdArray[3][3];
static double mdArray2[3][3];
for (i = 0; i < 3; i++)
for (j = 0; j < 3; j++)
{
double sum = 0;
for(k = 0; k < 3; k++)
sum = sum + mdArray[k][i] * mdArray[k][k];
mdArray2[i][j] = sum
}
VB6:
dim mdArray(0 to 2, 0 to 2) as integer
dim mdArray2(0 to 2, 0 to 2) as integer
for i = 0 to 2
for j = 0 to 2
dim a as double
sum = 0
for k = 0 to 2
sum = sum + mdArray(k,i) * mdArray(k,j)
mdArray2(i,j) = sum
Next
Next
Next
vb6版本会产生与C ++版本相同的结果吗?感谢。
答案 0 :(得分:5)
你甚至懒得去尝试吗?这是我能发现的错误:
a
而不是sum
mdArray(k, j)
而不是mdArray(k, k)
Next
语句应该在mdArray2(i,j) = sum
之前,而不是之后。答案 1 :(得分:3)
vb6版本会产生与C ++版本相同的结果吗?
你试过吗?
您的数组在C ++中声明为double
但在VB6中声明为Integer
。除此之外,代码看起来非常相同,除了最里面的循环(使用适当的缩进可以轻松防止这个错误!):
for k = 0 to 2
sum = sum + mdArray(k,i) * mdArray(k,j)
Next
mdArray2(i,j) = sum
dArray2(i,j) = sum
行属于外循环。