2015-12-19 3 views
-4

Я пишу программу, которая создавала бы мощность матрицы. , как вы видите, я пытаюсь спросить в цикле for (int n ...), если n == 0, , но когда я отлаживаю - я вижу, что программа просто пропускает условие и даже не введите его. Я имею в виду, что даже «не задает» вопрос, если n == 0 ...Моя программа пропускает оператор if

В чем проблема?

void Matrix::pow(int power, Matrix & result) 
{ 
    for (int i = 0; i < power-1; i++) 
    { 
     for (int j = 0; j < rows; j++) 
     { 
      for (int k = 0; k < cols; k++) 
      { 
       for (int n = 0; n < cols; n++) 
       { 
        if (n==0) 
        { 
         (&result)->_array[i][j] == 0; //Reset result's array. 
        } 
        (&result)->_array[i][j] += this->_array[i][n] * this->_array[n][j]; 
       } 
      } 
     } 
    } 
} 
+0

Лично я считаю, что 4 петли внутри друг друга чрезмерны. Возможно, используйте процедуру –

+1

. Почему 'this->', а также '(& result) ->' может быть 'result.' –

+2

' (& result) -> _ array [i] [j] == 0; // Сбросить массив результата. - Что именно вы пытаетесь сделать здесь? Результат – PaulMcKenzie

ответ

12

Это булево выражение, а не задание.

(&result)->_array[i][j] == 0; //Reset result's array. 
Смежные вопросы