В матрице А размера m*n сдвинуть строки вверх на одну и поставить первую строку на место последней - C (СИ)

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

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

Написать и протестировать функцию для решения следующей задачи. В матрице А размера m*n сдвинуть строки вверх на одну и поставить первую строку на место последней.

Решение задачи: «В матрице А размера m*n сдвинуть строки вверх на одну и поставить первую строку на место последней»

textual
Листинг программы
#include <stdio.h>
#include <string.h>
 
#define ROWS 5
#define COLUMNS 4
 
int main(void) {
    int matr[ROWS][COLUMNS] = {
        { 1, 1, 1, 1 },
        { 2, 2, 2, 2 },
        { 3, 3, 3, 3 },
        { 4, 4, 4, 4 },
        { 5, 5, 5, 5 }
    }, tmp[COLUMNS], i, j;
    
    printf("Before:\n");
    for ( i = 0; i < ROWS; ++i ) {
        for ( j = 0; j < COLUMNS; ++j )
            printf("%d ", matr[i][j]);
        printf("\n");
    }
    
    memcpy(tmp, matr[0], COLUMNS * sizeof(int));
    for ( i = 1; i < ROWS; ++i )
        memcpy(matr[i-1], matr[i], COLUMNS * sizeof(int));
    memcpy(matr[ROWS-1], tmp, COLUMNS * sizeof(int));
    
    printf("After:\n");
    for ( i = 0; i < ROWS; ++i ) {
        for ( j = 0; j < COLUMNS; ++j )
            printf("%d ", matr[i][j]);
        printf("\n");
    }
    
    return 0;
}

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

  1. Подключаются необходимые библиотеки для работы с файлами и строками
  2. Определяются размеры матрицы (количество строк и столбцов)
  3. Создается матрица типа int с размерами ROWS на COLUMNS и заполняется тестовыми значениями от 1 до 5
  4. Выводится исходная матрица на экран
  5. Создается временный массив tmp размером COLUMNS, в который копируются значения из первой строки матрицы
  6. С помощью цикла и функции memcpy из библиотеки C, значения каждой строки матрицы, начиная со второй, заменяются значениями следующей строки
  7. В последнюю строку матрицы копируются значения из временного массива tmp
  8. Выводится измененная матрица на экран
  9. Программа возвращает 0, заканчивая свое выполнение

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


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

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

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