#c #vb6
#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 ? Спасибо.
Ответ №1:
Вы вообще потрудились попробовать это? Вот ошибки, которые я смог обнаружить:
- Вы объявляете свои массивы с неправильным типом данных
- По какой-то причине вы объявляете
a
вместоsum
- У вас есть
mdArray(k, j)
вместоmdArray(k, k)
- Ваш самый внутренний
Next
оператор должен быть доmdArray2(i,j) = sum
, а не после него.
Комментарии:
1. 1 И это легко попробовать. Visual C express Edition бесплатен. Предположительно, у вас есть VB6 (в противном случае в упражнении нет особого смысла)
Ответ №2:
Даст ли версия vb6 тот же результат, что и версия C ?
Вы пробовали это?
Ваши массивы объявлены как double
в C , но Integer
в VB6. Помимо этого, коды выглядят довольно идентично, за исключением самого внутреннего цикла (использование правильного отступа легко предотвратило бы эту ошибку!):
for k = 0 to 2
sum = sum mdArray(k,i) * mdArray(k,j)
Next
mdArray2(i,j) = sum
dArray2(i,j) = sum
Строка принадлежит вне цикла.