c++ - 零矩阵不打印,因为它应该 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;
}
解决方案
double g_matrix[n][n] = {{0}}
这不是初始化二维矩阵的正确方法。
在这里,您只赋予(0,0)
位置价值。您可以尝试遍历数组并进行相应设置。
或者
最好使用@Aziuth 给出的向量构造函数:
std::vector<std::vector<double>> g_matrix(n, std::vector<double>(n, 0.));
这是你的选择。
推荐阅读
- python - 从 python 列表中打印 CSV
- css - 如何为 CSS 文件中的所有类指定一个伞类?
- amp-html - 我找不到 Amp dev 的任何资源
- javascript - 在画布上绘制 2 个像素,缩放为 20 个像素,没有模糊或纹理渗出
- haskell - 在 Haskell 中,1 自身无限相乘的结果是什么?
- google-bigquery - 在 BigQuery 中可以将“INFORMATION_SCHEMA”作为数据集添加并固定吗?
- python - 使用 python 子进程获取硬件 ID 时出错
- python - Python中的旋转数组
- batch-file - bat:传入带空格的文件夹
- javascript - 如何以编程方式终止正在进行的javascript函数