समस्या
मैट्रिक्स की सभी पंक्तियों को आरोही क्रम में और सभी कॉलम को अवरोही क्रम में सॉर्ट करने के लिए कोड लिखें। मैट्रिक्स का आकार और मैट्रिक्स के तत्व रनटाइम पर उपयोगकर्ता द्वारा दिए जाते हैं।
समाधान
C प्रोग्रामिंग भाषा में मैट्रिक्स की सभी पंक्तियों को आरोही क्रम में और सभी कॉलम को अवरोही क्रम में सॉर्ट करने का समाधान नीचे बताया गया है:
पंक्तियों को आरोही क्रम में सॉर्ट करने के लिए उपयोग की जाने वाली तर्क निम्नानुसार है:
for (i=0;i<m;++i){ for (j=0;j<n;++j){ for (k=(j+1);k<n;++k){ if (ma[i][j] > ma[i][k]){ a = ma[i][j]; ma[i][j] = ma[i][k]; ma[i][k] = a; } } } }कॉलम को अवरोही क्रम में सॉर्ट करने के लिए उपयोग की जाने वाली तर्क निम्नानुसार है:
for (j=0;j<n;++j){ for (i=0;i<m;++i){ for (k=i+1;k<m;++k){ if (mb[i][j] < mb[k][j]){ a = mb[i][j]; mb[i][j] = mb[k][j]; mb[k][j] = a; } } } }प्रोग्राम
निम्नलिखित C प्रोग्राम मैट्रिक्स की सभी पंक्तियों को आरोही क्रम में और सभी कॉलम को अवरोही क्रम में सॉर्ट करने के लिए है:
#include <stdio.h> void main(){ int i,j,k,a,m,n; static int ma[10][10],mb[10][10]; printf ("Enter the order of the matrix \n"); scanf ("%d %d", &m,&n); printf ("Enter co-efficients of the matrix \n"); for (i=0;i<m;++i){ for (j=0;j<n;++j){ scanf ("%d",&ma[i][j]); mb[i][j] = ma[i][j]; } } printf ("The given matrix is \n"); for (i=0;i<m;++i){ for (j=0;j<n;++j){ printf (" %d",ma[i][j]); } printf ("\n"); } printf ("After arranging rows in ascending order\n"); for (i=0;i<m;++i){ for (j=0;j<n;++j){ for (k=(j+1);k<n;++k){ if (ma[i][j] > ma[i][k]){ a = ma[i][j]; ma[i][j] = ma[i][k]; ma[i][k] = a; } } } } for (i=0;i<m;++i){ for (j=0;j<n;++j){ printf (" %d",ma[i][j]); } printf ("\n"); } printf ("After arranging the columns in descending order \n"); for (j=0;j<n;++j){ for (i=0;i<m;++i){ for (k=i+1;k<m;++k){ if (mb[i][j] < mb[k][j]){ a = mb[i][j]; mb[i][j] = mb[k][j]; mb[k][j] = a; } } } } for (i=0;i<m;++i){ for (j=0;j<n;++j){ printf (" %d",mb[i][j]); } printf ("\n"); } }आउटपुट
जब उपरोक्त प्रोग्राम निष्पादित होता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है:
Enter the order of the matrix 3 4 Enter co-efficient of the matrix 1 2 3 4 1 2 3 4 5 1 2 3 The given matrix is 1 2 3 4 1 2 3 4 5 1 2 3 After arranging rows in ascending order 1 2 3 4 1 2 3 4 1 2 3 5 After arranging the columns in descending order 5 2 3 4 1 2 3 4 1 1 2 3