Нулевая матрица не печатается как следует c ++ - PullRequest
0 голосов
/ 04 марта 2020

Я формирую нулевую матрицу в своем коде и печатаю ее, чтобы увидеть, но вывод в моей консоли. Но результат, который он дает, не является нулевой матрицей. Матрица получается одинаковой до и после заполнения матрицы, и я не могу выяснить, в чем проблема. Должен ли я изменить переменную на char? Пожалуйста, помогите. Спасибо.

 while(netlist.good()){
    netlist >> componentName >> node1 >> node2 >> value;
    maxnode= max(node1,node2);
    n=max(n,maxnode);
}
cout<< "n is "<<n<<endl;

 double g_matrix[n][n] = {{0}};

for (int i = 0; i < n; i++){
     for (int j = 0; j < n; j++){
         cout<<g_matrix[i][j]<<" ";
     }
     cout << "\n"<< endl;
  }

1 Ответ

0 голосов
/ 04 марта 2020

double g_matrix[n][n] = {{0}}
Это неправильный способ инициализации двумерной матрицы.

Здесь вы задаете значение только для позиции (0,0). Вы можете попытаться перебрать массив и установить его соответствующим образом.

ИЛИ
Лучше использовать конструктор вектора, заданный @Aziuth:
std::vector<std::vector<double>> g_matrix(n, std::vector<double>(n, 0.));

Выбор за вами.

...