尝试比较字符串的元素与循环和索引,但索引不会增加

时间:2014-01-26 00:49:11

标签: c++ string

我正在尝试为Euler Project制作一个Su Doku解算器。我在比较字符串元素时遇到问题。索引k的第二个循环只出现一次,而不是九次。如果我用我的if语句删除代码,它就会很好地循环。谁知道为什么?关于尝试访问我的字符串的事情让它停止......

puzzle是一个向量,reference_string是一个字符串="123456789"

for (int i = 0; i != 9; i++){
    cout << "loop 1" << endl;
    for (int k = 0; k != 9; k++) {

        if (reference_string[i] == puzzle[row_index][k] || 
            reference_string[k] == puzzle[col_index][k] || 
             reference_string[i] == puzzle[box_index][k] ){
            possible_answers.push_back(0);
        }

        else if ( k = 8 ){
            possible_answers.push_back(1);
        }
    }
}

1 个答案:

答案 0 :(得分:3)

您需要将k = 8更改为k == 8,或更安全8 == k。您没有执行比较,您正在执行一个改变循环计数器的赋值,因此只需一次迭代就可以满足循环条件。