Все нулевые элементы размещены на местах с нечетными индексами строк и столбцов
static int NN;
static int SIZE;
static int *m_addr;
static int lin(int, int);
static char ch_coord(int, int);
int L2_RESULT;
int creat_matr(int N)
{
m_addr = new int[SIZE];
NN = N;
SIZE = (N * N) / 2;
if (!m_addr)
return L2_RESULT = -1;
else
return L2_RESULT = 0;
}
int close_matr(void)
{
if (m_addr)
{
delete m_addr;
return L2_RESULT = 0;
}
else
return L2_RESULT = -1;
}
int read_matr(int x, int y, int m_size)
{
if (ch_coord(x, y))
return 0;
if (x >= m_size / 2)
return 0;
else
return m_addr[lin(x, y)];
}
int write_matr(int x, int y, int m_size, int value)
{
if (ch_coord(x, y))
return 0;
if (x >= m_size / 2)
return 0;
else
return m_addr[lin(x, y)] = value;
}
static int lin(int x, int y)
{
int n;
n = NN - x;
return SIZE - n * NN + y;
}
static char ch_coord(int x, int y)
{
if ((!m_addr) || (x > SIZE) || (y > SIZE) || (x < 0) || (y < 0))
return L2_RESULT = -1;
return L2_RESULT = 0;
}
Есть такой код, при генерации матрицы, он мне заменяет правую часть матрицы на нули, как изменить его, чтобы у меня нули были в местах нечетными индексами строк и столбцов ?