在我的代码中,布尔值isIndefinite意外地将其值更改为" true"在if(flag = true)之后{isIndefinite = true;}即使标志不是真的。谁能告诉我我犯了什么样的琐碎错误? :(
#include <iostream>
using namespace std;
int rows = 3;
int columns = 4;
double primaryTab[3][4] = {
{3, 3, 1, 12},
{2, 5, 7, 33},
{1, 2, 1, 8}
};
bool flag = true;
double multi;
int main()
{
bool isIndefinite = false;
for(int i = 0; i < rows; i++) {
for(int j = 0; j < rows; j++) {
if(i != j && primaryTab[i][0] != 0) {
multi = primaryTab[i][0] / primaryTab[j][0];
for(int k = 0; k < columns; k++) {
if((primaryTab[j][k] * multi) != primaryTab[i][k]) {
flag = false;
}
} if (flag = true) {isIndefinite = true;}
}
}
}
if(isIndefinite == true) {cout<<"Indefinite"<<endl;}
}
答案 0 :(得分:2)
您可以使用调试器轻松解决此问题。
问题是您在进行比较时需要使用==
运算符。使用=
运算符将执行赋值。