【发布时间】:2017-10-20 07:13:07
【问题描述】:
因此,我目前正在开发一个在 2D 数组(矩阵)上实现 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,因为这是一个更大的项目的一部分,该项目声明它不会包含它。
【问题讨论】:
-
int mat [i][j]){-->int mat [size][size]){? -
您确定要将
ints 用于您的矩阵吗? -
您应该首先检查 mat[i][i] 是否为 0(不除以 0)。请提供更多数据,说明您获得了什么结果以及应该是什么结果。
-
是的,我应该使用花车。我想看看我是否可以先操作一个由偶数组成的简单矩阵,然后再转到我的矩阵中更复杂的数字。