आकार nxn के मैट्रिक्स को देखते हुए यह किसी भी प्रकार के दिए गए मैट्रिक्स को विकर्ण मैट्रिक्स में बदलने का कार्य करता है।
विकर्ण मैट्रिक्स क्या है
विकर्ण मैट्रिक्स nxn मैट्रिक्स है जिसके सभी गैर-विकर्ण तत्व शून्य हैं और विकर्ण तत्व कोई भी मान हो सकते हैं।
गैर-विकर्ण तत्वों को 0 में बदलने का आरेख नीचे दिया गया है।
$$\शुरू करें{bmatrix}1 &2 &3 \\4 &5 &6 \\7 &8 &9 \end{bmatrix}\:\rightarrow\:\begin{bmatrix}1 &0 &3 \\0 और 5 और 0 \\7 और 0 और 9 \end{bmatrix}$$
दृष्टिकोण सभी गैर-विकर्ण तत्वों के लिए एक लूप शुरू करना और विकर्ण तत्वों के लिए दूसरा लूप शुरू करना और गैर-विकर्णों के मान को शून्य से बदलना और विकर्ण तत्वों को अपरिवर्तित छोड़ना है।
उदाहरण
Input-: matrix[3][3] = {{ 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 }} Output-: {{ 1, 0, 3}, { 0, 5, 0}, { 7, 0, 9}} Input-: matrix[3][3] = {{ 91, 32, 23 }, { 40, 51, 26 }, { 72, 81, 93 }} Output-: {{ 91, 0, 23}, { 0, 51, 0}, { 72, 0, 93}}
एल्गोरिदम
Start Step 1-> define macro for matrix size as const int n = 10 Step 2-> Declare function for converting to diagonal matrix void diagonal(int arr[][n], int a, int m) Loop For int i = 0 i < a i++ Loop For int j = 0 j < m j++ IF i != j & i + j + 1 != a Set arr[i][j] = 0 End End End Loop For int i = 0 i < a i++ Loop For int j = 0 j < m j++ Print arr[i][j] End Print \n End Step 2-> In main() Declare matrix as int arr[][n] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } } Call function as diagonal(arr, 3, 3) Stop
उदाहरण
#include <iostream> using namespace std; const int n = 10; //print 0 at diagonals in matrix of nxn void diagonal(int arr[][n], int a, int m) { for (int i = 0; i < a; i++) { for (int j = 0; j < m; j++) { if (i != j && i + j + 1 != a) arr[i][j] = 0; } } for (int i = 0; i < a; i++) { for (int j = 0; j < m; j++) { cout << arr[i][j] << " "; } cout << endl; } } int main() { int arr[][n] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }; diagonal(arr, 3, 3); return 0; }
आउटपुट
अगर हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा
0 2 0 4 0 6 0 8 0