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

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

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

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

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

textual
Листинг программы
  1. void loopShift( int mat[ 3 ][ 3 ], int n, int m )
  2. {
  3.     for( int j = 0; j < m; ++j )
  4.     {
  5.         int item = mat[ n - 1 ][ j ];
  6.         for( int i = n - 1; i > 0; --i )
  7.             mat[ i ][ j ] = mat[ i - 1 ][ j ];
  8.         mat[ 0 ][ j ] = item;
  9.     }
  10. }
  11.  
  12. int main()
  13. {
  14.     int mat[ 3 ][ 3 ] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
  15.  
  16.     loopShift( mat, 3, 3 );
  17.  
  18.     for( int i = 0; i < 3; ++i )
  19.     {
  20.         for( int j = 0; j < 3; ++j )
  21.             printf( "%4d", mat[ i ][ j ] );
  22.         printf( "\n" );
  23.     }
  24.     return 0;
  25. }

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

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

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы