我正在尝试为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);
}
}
}
答案 0 :(得分:3)
您需要将k = 8
更改为k == 8
,或更安全8 == k
。您没有执行比较,您正在执行一个改变循环计数器的赋值,因此只需一次迭代就可以满足循环条件。