【发布时间】:2012-11-03 10:32:46
【问题描述】:
我一直在尝试编写代码来确定矩阵是否为上三角形,然后打印出来。
我试过 while 循环,双 for 循环,什么都没有。这是我目前的烂摊子:
int i, j;
int count = 0;
bool upper;
while (upper = true;)
{
for (i=1; i<m; i++)
{
for (j=i-1; j<n; j++)
{
if (a[i] > a[j] && a[i][j] == 0.0)
upper = true;
else if (a[i][j] != 0.0)
upper = false;
}
}
}
// cout << "Matrix is upper triangular. " << count << endl;
【问题讨论】:
-
Isn't
iin for statement start from 0 和upper = true是赋值而不是比较。另外,如果程序没有编译,也请告诉我们错误。 -
你不需要 while 循环。也应该是
while (true == upper) -
当你到达upper = true 时突破。否则它很可能会在完成之前进入upper = false。
-
另外纠正我,但在线性代数中,成为上三角形所需的唯一条件是所有 i > j 的 A[i][j] = 0。顶部三角形也可以用零填充,但左下角必须是;正确吗?
-
我认为“a[i] > a[j]”不应该在里面。
标签: c++ for-loop while-loop triangular