2010-05-19 161 views
-3

我試圖源從C++轉換成維生素B6: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++版本?謝謝。

回答

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線屬於循環。

5

你還打擾到試試嗎?這裏的錯誤,我可以發現:

  1. 你用錯誤的數據類型
  2. 你因爲某些原因
  3. 宣佈a而不是sum聲明你的陣列您有mdArray(k, j)代替mdArray(k, k)
  4. 你的內心Next聲明應該在mdArray2(i,j) = sum之前,而不是之後。
+0

+1這很容易嘗試。 Visual C++快速版是免費的。大概你有VB6(否則練習中沒有太多要點) – MarkJ 2010-05-19 11:21:57