Все нулевые элементы размещены на местах с нечетными индексами строк и столбцов

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;
}

Есть такой код, при генерации матрицы, он мне заменяет правую часть матрицы на нули, как изменить его, чтобы у меня нули были в местах нечетными индексами строк и столбцов ?


Ответы (0 шт):