gpt4 book ai didi

c++ - 段错误 C++ 矩阵

转载 作者:行者123 更新时间:2023-11-30 04:43:43 24 4
gpt4 key购买 nike

我想让任何矩阵[n][n+1]成为上三角矩阵[n][n+1]。

我编写了这段代码,但这会导致段错误。

void diagonalizarMatriz(float** Matriz, int n){
for(int i = 0; i < n-1; i++)
for(int k = 0; k < n; k ++)
for(int j = n; j >= i; j++)
Matriz[k][j] = Matriz[k][j] - ((Matriz[k][i] * Matriz[i][j]) / Matriz[i][i]);
}

int main(){
float** Matriz = new float* [3];
for(int i = 0; i < 3 ; i++)
Matriz[i] = new float [4];

//test matrix
Matriz[0][0] = 1;
Matriz[0][1] = 4;
Matriz[0][2] = 52;
Matriz[0][3] = 57;
Matriz[1][0] = -27;
Matriz[1][1] = -110;
Matriz[1][2] = -3;
Matriz[1][3] = -134;
Matriz[2][0] = 22;
Matriz[2][1] = 2;
Matriz[2][2] = 14;
Matriz[2][3] = 38;

diagonalizarMatriz(Matriz, 3);

最佳答案

这里

for(int j = n; j >= i; j++)

你从数组维度的上边界处的 n 开始,然后向上计数,
很快你就会访问你的数组之外,如果你幸运的话,这会给你一个段错误。

随便猜想

for(int j = n; j >= i; j--)

倒数。

关于c++ - 段错误 C++ 矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58090724/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com