Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

In Ma Trận Dạng Zigzag Trong C++


Trong bài toán này, chúng ta được cho một ma trận 2 chiều. Nhiệm vụ là in ma trận theo dạng zigzag.

Ví dụ để hiểu vấn đề:

Đầu vào:
12 99 43
10 82 50
15 75 5
Đầu ra: 12 99 43 50 82 10 15 75 5

Để giải quyết, ta in các phần tử của mảng theo cả hai hướng (trái sang phải và phải sang trái) và thay đổi hướng bằng biến cờ.

Ví Dụ

#include <iostream>
using namespace std;

void printZigZagPattern(int row, int col, int a[][5]) {
    int evenRow = 0;
    int oddRow = 1;
    while (evenRow < row) {
        for (int i = 0; i < col; i++) {
            cout << a[evenRow][i] << " ";
        }
        evenRow = evenRow + 2;
        if (oddRow < row) {
            for (int i = col - 1; i >= 0; i--)
                cout << a[oddRow][i] << " ";
        }
        oddRow = oddRow + 2;
    }
}

int main() {
    int r = 3, c = 3;
    int mat[][5] = {
        {12, 99, 43},
        {10, 82, 50},
        {15, 75, 5}
    };
    cout << "Các phần tử của ma trận theo kiểu ZigZag:\n";
    printZigZagPattern(r, c, mat);
    return 0;
}

Đầu Ra

Các phần tử của ma trận theo kiểu ZigZag:

12 99 43 50 82 10 15 75 5