Computer >> Máy Tính >  >> Lập trình >> C ++

In ma trận ở dạng sóng ngược trong C ++


Trong bài toán này, chúng ta được đưa ra một ma trận. Nhiệm vụ của chúng tôi là in ma trận ở dạng sóng ngược trong một dòng.

Ví dụ này sẽ làm rõ vấn đề,

Input:
   1 4 6 11
   2 5 8 54
   7 9 3 43
   1 7 4 34
Output: 11 54 43 34 4 3 8 6 4 5 9 7 1 7 2 1

Để giải quyết vấn đề này, chúng ta phải in dạng sóng ngược của ma trận và đối với điều này, chúng ta sẽ in các phần tử của cột cuối cùng theo hướng xuống và sau đó là các phần tử của cột cuối cùng theo hướng lên trên trên cột này, cột đầu tiên của mảng.

Ví dụ

Chương trình hiển thị việc triển khai giải pháp của chúng tôi

#include<iostream>
using namespace std;
#define R 4
#define C 4
void printReverseWaveForm(int m, int n, int arr[R][C]) {
   int i, j = n - 1, wave = 1;
   while (j >= 0) {
      if (wave == 1) {
         for (i = 0; i < m; i++)
            cout<<arr[i][j]<<" ";
         wave = 0;
         j--;
      } else {
         for (i = m - 1; i >= 0; i--)
            cout<<arr[i][j]<<" ";
         wave = 1;
         j--;
      }
   }
}
int main() {
   int arr[R][C] = {
      { 1, 5, 7, 98 },
      { 15, 22, 45, 12 },
      { 5, 10, 21, 34 },
      { 31, 24, 45, 60 }
   };
   cout<<"Reverse Wave Form of the given matrix :\n";
   printReverseWaveForm(R, C, arr);
   return 0;
}

Đầu ra

Dạng sóng ngược của ma trận đã cho -

98 12 34 60 45 21 45 7 5 22 10 24 31 5 15 1