Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 역 나선 형태로 주어진 행렬 인쇄

<시간/>

이 문제에서는 2차원 행렬이 주어집니다. 우리의 임무는 행렬의 모든 요소를 ​​역나선 형태로 인쇄하는 것입니다.

문제를 이해하기 위해 예를 들어보겠습니다.

입력:12 23 54 67 76 90 01 51 43 18 49 5 31 91 75 9출력:18 49 1 90 76 43 31 91 75 9 5 51 67 124 23 

행렬의 중심에서 시작하여 요소를 역방향으로 인쇄하는 데 4개의 루프를 사용하여 역 나선 방향으로 요소를 인쇄합니다.

예시

솔루션 구현을 보여주는 프로그램

#include #define R 3#define C 6 네임스페이스 사용 std;void printReverseSpiral(int m, int n, int a[R][C]) { long int b[100]; 정수 i, k =0, l =0; 정수 z =0; 정수 크기 =m*n; 동안 (k =l; --i){ val =a[m-1][i]; b[z] =발; ++z; } 중--; } if (l =k; --i){ val =a[i][l]; b[z] =발; ++z; } l++; } } for (int i=size-1; i>=0; --i){ cout< 

출력

행렬의 역나선 인쇄 -

99 87 56 12 9 13 91 50 8 21 2 1 23 12 98 6 5 34