2016-04-08 27 views
-4

Kodum boolean değerindeki Indefinite, bayrağı doğru olmasa bile (flag = true) {isIndefinite = true;} sonra değerini "true" olarak beklenmedik biçimde değiştirir. Kimsenin bana ne kadar önemsiz bir hata yaptığını söyleyebilir mi? :(Boolean değerini değiştiren Boolean

#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

Bu, programınızı hata ayıklayıcınızla adım attığınız ve kendiniz çözdüğünüz ilk zamandır! – SergeyA

+4

'=' ödevdir, '==' kullanmalısınız. Bunun olması bekleniyor. – xinaiz

+1

Bu soruyu kapatmak için oy veriyorum off-topic çünkü OP hata ayıklayıcısını kullanmalıdır – SergeyA

cevap

2

kolayca ayıklayıcısını kullanarak bu sorunu gidermek olabilir. konu size karşılaştırma yapıyoruz == operatörünü kullanmak gerekir olmasıdır. Bir ödevi yapacak = operatörü kullanma.