Циклический сдвиг матрицы на строку - C (СИ)

Узнай цену своей работы

Формулировка задачи:

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

Решение задачи: «Циклический сдвиг матрицы на строку»

textual
Листинг программы
void loopShift( int mat[ 3 ][ 3 ], int n, int m )
{
    for( int j = 0; j < m; ++j )
    {
        int item = mat[ n - 1 ][ j ];
        for( int i = n - 1; i > 0; --i )
            mat[ i ][ j ] = mat[ i - 1 ][ j ];
        mat[ 0 ][ j ] = item;
    }
}
 
int main() 
{
    int mat[ 3 ][ 3 ] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
 
    loopShift( mat, 3, 3 );
 
    for( int i = 0; i < 3; ++i )
    {
        for( int j = 0; j < 3; ++j )
            printf( "%4d", mat[ i ][ j ] );
        printf( "\n" );
    }
    return 0;
}

Объяснение кода листинга программы

В данном коде реализован алгоритм циклического сдвига матрицы на строку.

  1. В функции loopShift происходит циклический сдвиг элементов матрицы mat на строку n.
  2. Переменная item инициализируется значением элемента матрицы mat[n-1][j].
  3. Далее, используя два вложенных цикла, элементы матрицы сдвигаются влево на одну позицию.
  4. В конце первого вложенного цикла, элемент item помещается в первую позицию строки n.
  5. В функции main создается матрица mat размером 3x3, заполненная значениями 1, 2, 3; 4, 5, 6; 7, 8, 9.
  6. Затем вызывается функция loopShift с аргументами mat, 3 и 3.
  7. После выполнения функции loopShift, элементы матрицы выводятся на экран с помощью двух вложенных циклов и функции printf.
  8. В конце программы возвращается 0, что означает успешное выполнение.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.111 из 5
Похожие ответы