首页 > 解决方案 > 零矩阵不打印,因为它应该 c++

问题描述

我在我的代码中形成一个零矩阵并打印它以查看我的控制台中的输出。但它给出的结果不是零矩阵。矩阵在我填充矩阵之前和之后都是一样的,我无法找出问题所在。我应该将变量更改为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;
  }

标签: c++matrixcoutzero

解决方案


double g_matrix[n][n] = {{0}}
这不是初始化二维矩阵的正确方法。

在这里,您只赋予(0,0)位置价值。您可以尝试遍历数组并进行相应设置。

或者
最好使用@Aziuth 给出的向量构造函数:
std::vector<std::vector<double>> g_matrix(n, std::vector<double>(n, 0.));

这是你的选择。


推荐阅读