Write a program to declare a matrix A [][] of order (MXN) where 'M' is the number of rows and 'N' is the number of columns such that both M and N must be greater than 2 and less than 20. Allow the user to input integers into this matrix.
Perform the following tasks on the matrix:
- Display the input matrix
- Find the maximum and minimum value in the matrix and display them along with their position.
- Sort the elements of the matrix in ascending order using any standard sorting technique and rearrange them in the matrix.
Output the rearranged matrix.
Example 1
INPUT:
M = 3
N = 4
Entered values: 8, 7, 9, 3, -2, 0, 4, 5, 1, 3, 6, -4
Original matrix:
8 7 9 3
-2 0 4 5
1 3 6 -4
Largest Number: 9
Row: 0
Column: 2
Smallest Number: -4
Row=2
Column=3
Rearranged matrix:
-4 -2 0 1
3 3 4 5
6 7 8 9
import java.util.*;
class MatrixSort
{
public static void main (String args[])
throws InputMismatchException
{
Scanner scan = new Scanner(System.in);
int m,n,i,j,x,t,smallest,rowS,colS,largest,rowL,colL;
System.out.println("Enter two positive integers m and n,
where 2 < m,n < 20: ");
m = scan.nextInt();
n = scan.nextInt();
if(m > 2 && m < 20 && n > 2 && n < 20){
int a[][] = new int[m][n];
System.out.println("Enter " + (m*n) + " elements: ");
for(i=0;i< m;i++){
for(j=0;j< n;j++){
a[i][j] = scan.nextInt();
}
}
System.out.println("Original Matrix: ");
for(i=0;i< m;i++){
for(j=0;j< n;j++){
System.out.print(a[i][j]+ " ");
}
System.out.println();
}
smallest = largest = a[0][0];
rowS = colS = rowL = colL = 0;
//1-D array to store the elements of the matrix
int b[] = new int[m*n];
x=0;
for(i=0;i< m;i++){
for(j=0;j< n;j++){
//Store elements into a 1-D array
b[x++] = a[i][j];
if(smallest > a[i][j]){
smallest = a[i][j];
rowS = i;
colS = j;
}
if(largest < a[i][j]){
largest = a[i][j];
rowL = i;
colL = j;
}
}
}
//Sort the elements in ascending order using bubble sort
for(i=1;i< x;i++){
for(j=0;j< x-i;j++){
if(b[j] > b[j+1]){
t = b[j];
b[j] = b[j+1];
b[j+1] = t;
}
}
}
//Put the sorted elements back into the matrix
x=0;
for(i=0;i< m;i++){
for(j=0;j< n;j++){
a[i][j] = b[x++];
}
}
System.out.println("\n Largest Number: "+largest);
System.out.println("Row: "+rowL);
System.out.println("Column: "+colL);
System.out.println("Smallest Number: "+smallest);
System.out.println("Row: "+rowS);
System.out.println("Column: "+colS);
System.out.println("Rearranged Matrix: ");
for(i=0;i< m;i++){
for(j=0;j< n;j++){
System.out.print(a[i][j]+ " ");
}
System.out.println();
}
}else{
System.out.println("Invalid value!");
}
}//end of main
}//end of class
Have something to say? Log in to comment on this post.
0 comments