Showing posts with label Questions and Answers. Show all posts
Showing posts with label Questions and Answers. Show all posts

Your Questions my Answers

[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 calulated

cout<<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:



Ask Your Questions

Few days back when I was going through my inbox, I saw a few e-mails of peoples
asking for solutions to their problems. Some of questions were so generic that
it could come up in anybody’s mind. So I thought of answering a few generic
questions publicly so that it could benefit others also.


Therefore, if you are having any confusions or problems, you can e-mails me
at one.arvind@gmail.com


Please note that only selected questions will be answered here; all the others
will be answered by e-mail (as many as possible).


After writing this the number of e-mails will definitely increase, so please
be patient
as it may take a little while before I could answer them.


The questions will be published along with your Name, Country and e-mail
address (if only you wish it to be published), so please include them with your
e-mail.


Don’t hesitate


E-mail me at: one.arvind@gmail.com


Good-Bye!


[NOTE: Before you ask, please use the search feature of this blog,
who knows if the answer to your problem is already here!]


Related Articles:


Check out this stream