Untitled
unknown
plain_text
3 years ago
2.8 kB
6
Indexable
void initialization3()
{
char** matrix = NULL;
int sizerow = 0;
int sizecol = 0;
std::cout<<"Enter size row for matrix -> "<<std::endl;
std::cin>>sizerow;
matrix = new char*[sizerow];
std::cout<<"Enter size col for matrix -> ";
std::cin>>sizecol;
for (int i = 0; i < sizerow; ++i)
{
matrix[i] = new char[sizecol];
}
resetmatrix(matrix , sizerow , sizecol);
}
void resetmatrix(char** matrix , int sizerow , int sizecol)
{
for (int i = 0; i < sizerow; ++i)
{
for (int j = 0; j < sizecol; ++j)
{
std::cin>>matrix[i][j];
if (matrix[i][j] != '0' && matrix[i][j] != '1')
{
do
{
std::cin>>matrix[i][j];
} while (matrix[i][j] != '0' && matrix[i][j] != '1');
}
}
}
PrintMatrix(matrix,sizerow,sizecol);
}
void PrintMatrix(char** matrix , int sizerow , int sizecol)
{
std::cout<<std::endl;
std::cout<<std::endl;
for (int i = 0; i < sizerow; ++i)
{
for (int j = 0; j < sizecol; ++j)
{
std::cout<<" "<<matrix[i][j]<<" ";
}
std::cout<<std::endl;
std::cout<<std::endl;
}
bool result = check(matrix, sizerow, sizecol);
if (result)
{
std::cout<<"The matrix is -> Correct"<<std::endl;
}
else
std::cout<<"The matrix is -> Not Correct"<<std::endl;
}
bool check(char** matrix, int sizerow, int sizecol)
{
for (int i = 0; i < sizerow; i++)
{
int row_sum = 0;
for (int j = 0; j < sizecol; j++)
{
if (matrix[i][j] == '1')
{
row_sum += 1 << (sizecol - 1 - j);
}
}
if (i > 0)
{
int prev_row_sum = 0;
for (int j = 0; j < sizecol; j++)
{
if (matrix[i - 1][j] == '1')
{
prev_row_sum += 1 << (sizecol - 1 - j);
}
}
if (row_sum <= prev_row_sum)
{
return false;
}
}
}
for (int j = 0; j < sizecol; j++)
{
int col_sum = 0;
for (int i = 0; i < sizerow; i++)
{
if (matrix[i][j] == '1')
{
col_sum += 1 << (sizerow - 1 - i);
}
}
if (j > 0)
{
int prev_col_sum = 0;
for (int i = 0; i < sizerow; i++)
{
if (matrix[i][j - 1] == '1')
{
prev_col_sum += 1 << (sizerow - 1 - i);
}
}
if (col_sum <= prev_col_sum)
{
return false;
}
}
}
return true;
}
Editor is loading...