Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

एंटीस्पाइरल रूप में प्रिंट मैट्रिक्स

n*n के 2d सरणी को देखते हुए और कार्य दिए गए मैट्रिक्स की एंटीस्पाइरल व्यवस्था को खोजना है

Input : arr[4][4]={1,2,3,4,
   5,6,7,8,
   9,10,11,12
   13,14,15,16}
Output: 10 11 7 6 5 9 13 14 15 16 12 8 4 3 2 1

एंटीस्पाइरल रूप में प्रिंट मैट्रिक्स

इसके लिए, स्टैक का उपयोग किया जा सकता है जहां मैट्रिक्स के स्थानान्तरण को स्टैक के अंदर धकेला जा सकता है और उल्टा पॉप किया जा सकता है

एल्गोरिदम

START
STEP 1 -> declare stack vector element as stk and variables as int r=4, c=4, i, j, rs=0 and cs=0
Step 2 -> store matrix elements in 2-3 array
Step 3 -> Loop For i=0 and o<4 and i++
   Loop For j=0 and j<4 and j++
      Print arr[i][j]
      End
      Print \n
   End
Step 4 -> Loop While rs<c and cs<r
   Loop For i=rs and i<c and i++
      Push arr[rs][i]
      End
      cs++
   Loop For i=cs and i<r-1 and ++i
      Push arr[r-1][i]
   End
   c—
   IF(cs<r)
      Loop For i=r-1 and i>=rs and –i
         Push arr[r-1][i]
      End
      r- -
   End
   IF(rs<c)
      Loop For i=c-1 and i>=cs and i- -
         Push arr[i][rs]
         End
         Rs++
      End
   End
Step 5 -> Loop While !stk.empty()
Print stk.top()
Call pop()
End
STOP

उदाहरण

#include<iostream>
#include <bits/stdc++.h>
using namespace std;
int main(){
   stack <int> stk;
   int R=4,C=4,i,j,RS=0,CS=0;
   int mat[R][C] = { {1,2,3, 4}, {5,6,7,8},{9,10,11,12},{13,14,15,16}};
   for(i=0;i<4;i++){
      for(j=0;j<4;j++)
         cout<<mat[i][j]<<" ";
      cout<<"\n";
   }
   while(RS<C&&CS<R) {
      for(i=RS;i<C;i++)
         stk.push(mat[RS][i]);
      CS++;
      for(i=CS;i<R-1;++i)
         stk.push(mat[i][C-1]);
      C--;
   if(CS<R){
      for(i=R-1;i>=RS;--i)
         stk.push(mat[R-1][i]);
      R--;
   }
   if(RS<C){
      for(i=C-1;i>=CS;i--)
         stk.push(mat[i][RS]);
      RS++;
   }
}
while(!stk.empty()){
   cout<<stk.top()<<" ";
   stk.pop();
}

आउटपुट

यदि हम उपरोक्त प्रोग्राम चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा

1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
10 11 7 6 5 9 13 14 15 16 12 8 4 3 2 1

  1. सी प्रोग्राम में मैट्रिक्स विकर्ण पैटर्न में प्रिंट नंबर।

    कार्य विकर्ण पैटर्न के n x ​​n के मैट्रिक्स को प्रिंट करना है। यदि n 3 है तो विकर्ण पैटर्न में एक मैट्रिक्स को प्रिंट करना है - तो आउटपुट इस तरह होगा - उदाहरण Input: 3 Output:    1 2 4    3 5 7    6 8 9 Input: 4 Output:    1 2 4  7    3 5

  1. सी प्रोग्राम में मैट्रिक्स को तिरछे नीचे की ओर प्रिंट करें।

    आकार n x n की एक सरणी के साथ दिया गया है और कार्य पूर्णांक प्रकार के मैट्रिक्स तत्वों को तिरछे नीचे की ओर प्रिंट करना है। तिरछे नीचे की ओर का अर्थ है n x n के किसी भी आकार की सरणी को तिरछे नीचे की ओर ले जाना जैसे नीचे दिए गए चित्र में प्रिंट करना - सबसे पहले यह 1 प्रिंट करेगा और फिर 2 प्रिंट करन

  1. दिए गए मैट्रिक्स को C++ में वामावर्त सर्पिल रूप में प्रिंट करें

    इस समस्या में, हमें एक 2-आयामी मैट्रिक्स दिया गया है। और हमारा काम मैट्रिक्स के तत्वों को वामावर्त सर्पिल में से प्रिंट करना है। वामावर्त सर्पिल रूप - यह एक सर्पिल ट्रैवर्सल है जो ऊपर-बाएं से शुरू होता है और वामावर्त दिशा में पहले नीचे-दाएं-ऊपर-बाएं जाता है। वामावर्त ट्रैवर्सल 1 5 9 13 14 15 16