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

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

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

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

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;
}
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.

14   голосов, оценка 4.286 из 5


СДЕЛАЙТЕ РЕПОСТ