gpt4 book ai didi

c - 在 C 中的二维数组中划分行时遇到问题

转载 作者:太空宇宙 更新时间:2023-11-04 04:21:03 25 4
gpt4 key购买 nike

所以我目前正在研究一个在二维数组(矩阵)上实现 Gauss-Jordan 消去法的程序,我目前有一些树桩,只是试图让第一行除以第一个枢轴:

void Gauss(int i, int j, int size, int mat [size][size])
{
int x = 0;
for(int i = 0; i < size;i++) {
for(int j = 0; j < size; j++) {
if(mat[i][j]== mat[i][i]) {
mat[0][i] = mat[0][i]/mat[i][i];
mat[i][i] = mat[i][i]/mat[i][i];
mat[i][j] = mat[i][i];
}
}
}
}

这是我原来的垫子:

2 2 4

2 1 7

1 3 5

然后这是我的垫子:

1 2 0

2 1 7

1 3 1

程序不断将第一行除以每条对角线。有人可以解释为什么会发生这种情况以及有关如何解决它的提示吗?此外,我不必担心任何枢轴已经为 0,因为这是一个更大的项目的一部分,该项目声明它不会包含它。

最佳答案

改变这个:

void Gauss(int i, int j, int size, int mat [i][j])

为此:

void Gauss(int i, int j, int size, int mat [size][size])

这个 mat[i][j] = mat[i][i]; 没有用处,因为它只在 mat[i][j]== mat 时执行[i][i].


在这种应用中,人们通常使用float而不是int,但这当然不是你的直接错误。

关于c - 在 C 中的二维数组中划分行时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46844057/

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