কম্পিউটার টিউটোরিয়াল

C++-এ একটি ম্যাট্রিক্স রিভার্স স্পাইরাল ফর্মে প্রিন্ট করা

এই সমস্যায় একটি ২-মাত্রিক ম্যাট্রিক্স দেওয়া আছে। আমাদের ম্যাট্রিক্সের সকল উপাদান রিভার্স স্পাইরাল ফর্মে প্রিন্ট করতে হবে।

উদাহরণ

ইনপুট:
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 54 23 12

ম্যাট্রিক্সের কেন্দ্র থেকে শুরু করে রিভার্স স্পাইরাল দিয়ে উপাদানগুলো প্রিন্ট করা হবে। এতে চারটি লুপ ব্যবহার করা হয়।

বাস্তবায়ন

#include <iostream> 
#define R 3 
#define C 6 
using namespace std; 

void printReverseSpiral(int m, int n, int a[R][C]) { 
    long int b[100]; 
    int i, k = 0, l = 0; 
    int z = 0; 
    int size = m * n; 
    while (k < m && l < n) { 
        int val; 
        for (i = l; i < n; ++i) { 
            val = a[k][i]; 
            b[z] = val; 
            ++z; 
        } 
        k++; 
        for (i = k; i < m; ++i) { 
            val = a[i][n-1]; 
            b[z] = val; 
            ++z; 
        } 
        n--; 
        if (k < m) { 
            for (i = n-1; i >= l; --i) { 
                val = a[m-1][i]; 
                b[z] = val; 
                ++z; 
            } 
            m--; 
        } 
        if (l < n) { 
            for (i = m-1; i >= k; --i) { 
                val = a[i][l]; 
                b[z] = val; 
                ++z; 
            } 
            l++; 
        } 
    } 
    for (int i = size-1; i >= 0; --i) { 
        cout << b[i] << " "; 
    } 
} 

int main() { 
    int mat[R][C] = { 
        {34, 5, 6, 98, 12, 23}, 
        {9, 12, 56, 87, 99, 1}, 
        {13, 91, 50, 8, 21, 2} 
    }; 
    cout << "Printing reverse Spiral of the matrix :\n"; 
    printReverseSpiral(R, C, mat); 
    return 0; 
}

আউটপুট

Printing reverse Spiral of the matrix :
99 87 56 12 9 13 91 50 8 21 2 1 23 12 98 6 5 34
  1. সি++-এ স্পায়রাল ম্যাট্রিক্স III (Spiral Matrix III)

  2. C++-এ একটি ম্যাট্রিক্স কাউন্টার-ক্লকওয়াইজ স্পাইরাল ফর্মে প্রিন্ট করা

  3. সোর্স থেকে ডেস্টিনেশন পর্যন্ত সব পথ প্রিন্ট করা C++-তে

  4. C++ প্রোগ্রাম: লিনিয়ার সমীকরণগুলোকে ম্যাট্রিক্স আকারে রূপান্তর