Печать квадратных матричных поворотов бок о бок C

Я работаю над функцией, которая принимает квадратную матрицу (2D-массив), поворачивает ее на 90 градусов, затем печатает все 4 оборота. То, над чем я работаю, печатает эти вращения бок о бок, а не прямо под ними. Это то, что я могу произвести, учитывая первую матрицу, показанную ниже:

123
123
123

111
222
333

321
321
321

333
222
111

То, что я хочу достичь:

123  111  321  333
123  222  321  222
123  333  321  111

Любая помощь в том, как

code:

//get transformation of matrix
for(num_rotations = 0;num_rotations < 3;num_rotations++){
    for(row=0;row<num_rows;row++){
        for(col=0;col<3;col++){
            temp_arr[row][col] = working_arr[col][row];
        }
    }
}

Пока внутри цикла 1-го для Затем повторяются 2-й и 3-й «для» циклов, а последняя строка заменяется на:

working_arr[row][col] = temp_arr[row][3-col-1];//reverse columns for a single rotation

Оператор печати помещается в конец самого первого цикла «для».

0
задан 13 August 2018 в 14:49

2 ответа

Если вам просто нужно его распечатать, вы можете сделать что-то вроде

for(int i=0; i<n; ++i)
{
    for(int j=0; j<n; ++j)
    {
        printf("%3d", arr[i][j]);
    }
    printf("\t");

    for(int j=0; j<n; ++j)
    {
        printf("%3d", arr[n-1-j][i]);
    }
    printf("\t");

    for(int j=n-1; j>=0; --j)
    {
        printf("%3d", arr[n-1-i][j]);
    }
    printf("\t");

    for(int j=0; j<n; ++j)
    {
        printf("%3d", arr[j][n-1-i]);
    }
    printf("\n");
}

, где arr имеет матрицу размера n.

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

1
ответ дан 15 August 2018 в 17:02

Если вы не храните все 4 2D-массива и не печатаете их в конце все сразу, это довольно сложно.

Еще одна (беспорядочная) идея - использовать gotoxy (), чтобы поместить курсор туда, куда вы хотите на экране и распечатать элементы 2D-массивов при вращении. Как разместить курсор ввода в C?

0
ответ дан 15 August 2018 в 17:02

Другие вопросы по тегам:

Похожие вопросы: