*[I have started this new section in which I will answer your questions publicly. Therefore, if you are having any confusions or problems, you can e-mails me at one.arvind@gmail.com. Please note that… read more]*

**Problem:** I want to sort each row of a matrix in ascending order,
after which I need to display another matrix whose elements are the column indices
of the elements of the original matrix with respect to the corresponding elements
of the sorted matrix. Please give a program to do so.
eg.

Original matrix={ {9,4,2}, {7,3,8} };

Sorted Matrix= { {2,4,9}, {3,7,8} };

Column Index= { {2,1,0}, {1,0,2} };

*Dominic [ *], Student, Nigeria
*

*[* Last Name Deleted on Request]*

**Solution:** Nice question Dominic, here is the solution. I will
not discuss anything here as I have included enough comments in the program
itself.

// C++ program to sort a matrix // row-wise and then calculate // column index of the sorted matrix // w.r.t the original matrix #include<iostream.h> #define ROW 2 #define COL 3 void main(void) { int i,j,k,temp; // declare two-dimensional arrays int matrix[ROW][COL]; int sorted_matrix[ROW][COL]; int col_index[ROW][COL]; // input data from the user for(i=0;i<ROW;i++) for(j=0;j<COL;j++) cin>>matrix[i][j];// copy the matrix to another // matrix on which sorting will be done // because we don't want to change the // original matrix for(i=0;i<ROW;i++) for(j=0;j<COL;j++) sorted_matrix[i][j]=matrix[i][j];// bubble sorting is done here // row-wise. the first loop is to // sekect the row for(i=0;i<ROW;i++) for(j=0;j<COL;j++) for(k=0;k<(COL-1);k++) if (sorted_matrix[i][k]>sorted_matrix[i][k+1]) { temp=sorted_matrix[i][k]; sorted_matrix[i][k]=sorted_matrix[i][k+1]; sorted_matrix[i][k+1]=temp; } // sorting complete// calculate the column index and store // to another matrix for(i=0;i<ROW;i++) for(j=0;j<COL;j++) for(k=0;k<COL;k++) { if(matrix[i][j]==sorted_matrix[i][k]) col_index[i][j]=k; } // column index calulatedcout<<endl;// display the sorted matrix cout<<"\n\nSorted Array:\n"; for(i=0;i<ROW;i++) { for(j=0;j<COL;j++) cout<<" "<<sorted_matrix[i][j];cout<<endl; }cout<<endl;// display the column index cout<<"\n\nColumn Index:\n"; for(i=0;i<ROW;i++) { for(j=0;j<COL;j++) cout<<" "<<col_index[i][j];cout<<endl; } }

Hope this helps!

Good-Bye!

**Related Articles:**

## No comments:

## Post a Comment

You are free to comment anything, although you can comment as 'Anonymous' it is strongly recommended that you supply your name. Thank You.

Please don't use abusive language.