布尔值,它改变了它的值

时间:2016-04-08 13:40:45

标签: c++

在我的代码中,布尔值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;} 
}

1 个答案:

答案 0 :(得分:2)

您可以使用调试器轻松解决此问题。 问题是您在进行比较时需要使用==运算符。使用=运算符将执行赋值。