У меня есть следующий код
#include <bits/stdc++.h>
using namespace std;
int main() {
int r = 0, c = 0;
int best = 0;
cin >> r >> c;
int myGrid[r + 2][c + 2] = {};
for (int i = 1; i < r + 1; i++) {
for (int j = 1; j < c + 1; j++) {
cin >> myGrid[i][j];
}
}
bool stillIn = false;
int di[] = {-1,-1, -1, 0, 0, 1, 1, 1};
int dj[] = {-1,0, 1, -1, 1, -1, 0, 1};
for (int i = 1; i < r + 1; i++) {
for (int J = 1; J < c + 1; J++) {
stillIn = false;
for (int k = 0; k < 8; k++) {
// cout << myGrid[i][J] << " " << endl;
if (myGrid[i][J] == myGrid[di[k]][dj[k]]) {
stillIn = true;
}
}
if (stillIn == true) {
best = myGrid[i][J];
}
}
}
cout << best;
return 0;
}
Если я запускаю код со следующим вводом:
4 3
0 1 0
1 2 0
1 5 1
2 3 4
Он печатает 4. Однако, если я раскомментирую строку 28, которая
// cout << myGrid[i][J] << " " << endl;
Тогда он дает мне 1, что является правильным ответом. Почему это происходит!? Как использование cout меняет окончательный ответ?
Заранее благодарим за любую помощь.