Я смотрел на этот код в течение нескольких часов, пробовал прохождение игры, отлаживал авто и точки останова, и пока это не решение. Мейби, чей-то свежий взгляд поможет мне;).Проверка наличия числа в той же строке или столбце
#include <iostream>
using namespace std;
int matrix[9][9] = {{0, 0, 6, 0, 0, 0, 1, 0, 5},
{0, 4, 0, 7, 0, 6, 0, 3, 9},
{2, 0, 0, 9, 3, 0, 6, 0, 0},
{7, 0, 0, 1, 8, 0, 5, 0, 4},
{0, 0, 4, 0, 6, 0, 9, 0, 0},
{1, 0, 9, 0, 5, 2, 0, 0, 3},
{0, 0, 1, 0, 9, 3, 0, 0, 7},
{6, 7, 0, 5, 0, 8, 0, 9, 0},
{9, 0, 8, 0, 0, 0, 4, 0, 0}};
bool check(int column ,int row,int checkedValue)
{
//column check
for(int i=0; i<9; i++)
{
if(i==row)continue;
if(checkedValue==matrix[column][i]) return false;
}
//row check
for(int i=0; i<9; i++)
{
if(i==column) continue;
if(checkedValue==matrix[i][row]) return false;
}
return true;
}
int main()
{
cout<<check(4,0,4); //Why does it output 0? There is no "4" in the 5th column and the 1st row.
system("pause");
return 0;
}
Проверка функции (колонок, строка, значение) был разработан, чтобы возвращать 0, когда число происходит по крайней мере, один раз в «матрице» двумерный таблице. Эта программа является куском решателя судоку.
Можете вы рассказать о том, что вы пытаетесь сделать? Вы пытаетесь проверить, отображается ли один и тот же номер в одном столбце/строке более одного раза. Глядя на ваш код, похоже, вы можете написать решателя Sudoku, но это всего лишь догадка в данный момент. – JPvdMerwe