C मल्टी-आयामी एरे का उपयोग करके दो मैट्रिसेस को गुणा करने का कार्यक्रम

इस उदाहरण में, आप दो मैट्रिसेस को गुणा करना सीखेंगे और उपयोगकर्ता द्वारा परिभाषित कार्यों का उपयोग करके इसे प्रदर्शित करेंगे।

इस उदाहरण को समझने के लिए, आपको निम्नलिखित सी प्रोग्रामिंग विषयों का ज्ञान होना चाहिए:

  • C एरेस
  • C बहुआयामी एरर

यह कार्यक्रम उपयोगकर्ता को दो मैट्रिसेस के आकार (पंक्तियों और कॉलम) में प्रवेश करने के लिए कहता है।

दो मैट्रिक्स को गुणा करने के लिए, पहले मैट्रिक्स के कॉलम की संख्या दूसरी मैट्रिक्स की पंक्तियों की संख्या के बराबर होनी चाहिए

नीचे दिए गए कार्यक्रम में दो मेट्रिक्स की पंक्तियों और स्तंभों की संख्या पूछी जाती है जब तक कि उपरोक्त स्थिति संतुष्ट नहीं होती है।

फिर, दो मैट्रिक्स का गुणन किया जाता है, और परिणाम स्क्रीन पर प्रदर्शित होता है।

इसे करने के लिए, हमने तीन कार्य किए हैं:

  • getMatrixElements() - उपयोगकर्ता से मैट्रिक्स तत्व इनपुट लेने के लिए।
  • multiplyMatrices() - दो मैट्रिसेस को गुणा करना।
  • display() - गुणा के बाद परिणामी मैट्रिक्स को प्रदर्शित करने के लिए।

इसे फंक्शन में पास करके मैट्रिसेस को गुणा करें

 #include // function to get matrix elements entered by the user void getMatrixElements(int matrix()(10), int row, int column) ( printf("Enter elements: "); for (int i = 0; i < row; ++i) ( for (int j = 0; j < column; ++j) ( printf("Enter a%d%d: ", i + 1, j + 1); scanf("%d", &matrix(i)(j)); ) ) ) // function to multiply two matrices void multiplyMatrices(int first()(10), int second()(10), int result()(10), int r1, int c1, int r2, int c2) ( // Initializing elements of matrix mult to 0. for (int i = 0; i < r1; ++i) ( for (int j = 0; j < c2; ++j) ( result(i)(j) = 0; ) ) // Multiplying first and second matrices and storing it in result for (int i = 0; i < r1; ++i) ( for (int j = 0; j < c2; ++j) ( for (int k = 0; k < c1; ++k) ( result(i)(j) += first(i)(k) * second(k)(j); ) ) ) ) // function to display the matrix void display(int result()(10), int row, int column) ( printf("Output Matrix:"); for (int i = 0; i < row; ++i) ( for (int j = 0; j < column; ++j) ( printf("%d ", result(i)(j)); if (j == column - 1) printf(""); ) ) ) int main() ( int first(10)(10), second(10)(10), result(10)(10), r1, c1, r2, c2; printf("Enter rows and column for the first matrix: "); scanf("%d %d", &r1, &c1); printf("Enter rows and column for the second matrix: "); scanf("%d %d", &r2, &c2); // Taking input until // 1st matrix columns is not equal to 2nd matrix row while (c1 != r2) ( printf("Error! Enter rows and columns again."); printf("Enter rows and columns for the first matrix: "); scanf("%d%d", &r1, &c1); printf("Enter rows and columns for the second matrix: "); scanf("%d%d", &r2, &c2); ) // get elements of the first matrix getMatrixElements(first, r1, c1); // get elements of the second matrix getMatrixElements(second, r2, c2); // multiply two matrices. multiplyMatrices(first, second, result, r1, c1, r2, c2); // display the result display(result, r1, c2); return 0; )

आउटपुट

 पहले मैट्रिक्स के लिए पंक्तियाँ और स्तंभ दर्ज करें: 2 3 दूसरी मैट्रिक्स के लिए पंक्तियाँ और स्तंभ दर्ज करें: 3 2 दर्ज करें तत्व: Enter a11: 2 a12 दर्ज करें: a12: -3 a13 दर्ज करें: 4 a21 दर्ज करें: 53 Enter a22: 3 Enter a23: 5 दर्ज करें तत्वों को दर्ज करें: a11: 3 दर्ज करें a12: 3 दर्ज करें a21: 5 दर्ज करें a22: 0 दर्ज करें a31: -3 दर्ज करें a32: 4 आउटपुट मैट्रिक्स: -21 22 159 179

दिलचस्प लेख...