我正在尝试为 Euler Project 制作一个 Su Doku 求解器。我在比较字符串元素时遇到问题。我的索引为 k 的第二个循环只出现一次,而不是九次。如果我用 if 语句删除代码,它会很好地循环。有人知道为什么吗?关于尝试访问我的字符串的一些事情使它停止......
puzzle
是一个 vector ,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);
}
}
}
最佳答案
您需要将 k = 8
更改为 k == 8
,或者更安全的 8 == k
。您不是在执行比较,而是在执行更改循环计数器的赋值,以便在一次迭代后满足循环条件。
关于c++ - 尝试将字符串的元素与循环和索引进行比较,但索引不会递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21358226/