VB6需要一些循环帮助

时间:2010-05-19 09:57:39

标签: c++ vb6

我正在尝试将源代码从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 ++版本相同的结果吗?感谢。

2 个答案:

答案 0 :(得分:5)

你甚至懒得去尝试吗?这是我能发现的错误:

  1. 使用错误的数据类型声明数组
  2. 由于某种原因,您宣布a而不是sum
  3. 您有mdArray(k, j)而不是mdArray(k, k)
  4. 您最内层的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行属于循环。