Переворот нечетных столбцов матрицы

Никак не могу додумать как исправить

void Quest(int n, int n2) {

int** matrix = new int* [n];
for (int i = 0; i < n; i++)
    matrix[i] = new int[n2];


for (int i = 0; i < n; i++)
{
    for (int j = 0; j < n2; j++)
    {
        matrix[i][j] = rand() % 10;
        cout << matrix[i][j] << " ";
    }
   
}

cout << endl;

//тут нужно подправить 
for (int j = 0; j < n2; j++) 
{
    for (int i = 0; i < n; i++)
    {
        if (matrix[i][j] % 2 == 1) {

            int tmp = matrix[i][j];
            matrix[i][j] = matrix[n - 1 - i][j];
            matrix[n - 1 - i][j] = tmp;
        }
    }
    cout << endl;
}
//-------------------


cout << "Полученная матрица" << endl;

for (int i = 0; i < n; i++)
{
    for (int j = 0; j < n2; j++)
        cout << matrix[i][j] << " ";
    cout << endl;
}
}

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

Автор решения: Никита

Вам нужен переворот нечетных столбцов. Вы проверяете элемент матрицы, а не столбец matrix[i][j] это элемент матрицы, нужно проверить столбцы

if(matrix[i]%2==1)
{
int tmp = matrix[i][j];
matrix[i][j] = matrix[n - 1 - i][j];
matrix[n - 1 - i][j] = tmp;
}
→ Ссылка