Write a program to declare a matrix A[][] of order (M Ć N) 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 10. Allow the user to input integers into this matrix. Display appropriate error message for an invalid input.
Perform the following tasks on the matrix:
(a) Display the input matrix.
(b) Shift each row one step upwards so the first row becomes the last row, 2nd row will be the 1st row and so on.
(c) Display the rotated matrix along with the highest element and its location in the matrix.
Test your program for the following data and some random data:
Example 1
INPUT:
M = 3
N = 4
Enter elements in the matrix:
FORMED MATRIX AFTER ROTATING:
Example 2
INPUT:
M = 4
N = 3
Enter elements in the matrix:
FORMED MATRIX AFTER ROTATING:
Example 3
INPUT:
M = 2
N = 3
OUTPUT: SIZE IS OUT OF RANGE. INVALID ENTRY.
Program:
import java.util.Scanner;
class ShiftRows{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.print("M = ");
int m = sc.nextInt();
System.out.print("N = ");
int n = sc.nextInt();
if(m < 3 || m > 9 || n < 3 || n > 9){
System.out.println("SIZE IS OUT OF RANGE. INVALID ENTRY.");
return;
}
int mat[][] = new int[m][n];
int r = 0;
int c = 0;
System.out.println("ENTER ELEMENTS IN THE MATRIX:");
for(int i = 0; i < m; i++){
for(int j = 0; j < n; j++){
mat[i][j] = sc.nextInt();
}
}
System.out.println("ORIGINAL MATRIX:");
display(mat);
int a[] = new int[n];
for(int i = 0; i < n; i++)
a[i] = mat[0][i];
for(int i = 1; i < m; i++){
for(int j = 0; j < n; j++){
mat[i - 1][j] = mat[i][j];
}
}
for(int i = 0; i < n; i++)
mat[m - 1][i] = a[i];
System.out.println("FORMED MATRIX AFTER ROTATING:");
display(mat);
for(int i = 0; i < m; i++){
for(int j = 0; j < n; j++){
if(mat[i][j] > mat[r][c]){
r = i;
c = j;
}
}
}
System.out.print("HIGHEST ELEMENT: " + mat[r][c]);
System.out.println(" (Row: " + r + " and Column: " + c + ")");
sc.close();
}
public static void display(int mat[][]){
for(int i = 0; i < mat.length; i++){
for(int j = 0; j < mat[0].length; j++){
System.out.print(mat[i][j] + "\t");
}
System.out.println();
}
}
}
class ShiftRows{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.print("M = ");
int m = sc.nextInt();
System.out.print("N = ");
int n = sc.nextInt();
if(m < 3 || m > 9 || n < 3 || n > 9){
System.out.println("SIZE IS OUT OF RANGE. INVALID ENTRY.");
return;
}
int mat[][] = new int[m][n];
int r = 0;
int c = 0;
System.out.println("ENTER ELEMENTS IN THE MATRIX:");
for(int i = 0; i < m; i++){
for(int j = 0; j < n; j++){
mat[i][j] = sc.nextInt();
}
}
System.out.println("ORIGINAL MATRIX:");
display(mat);
int a[] = new int[n];
for(int i = 0; i < n; i++)
a[i] = mat[0][i];
for(int i = 1; i < m; i++){
for(int j = 0; j < n; j++){
mat[i - 1][j] = mat[i][j];
}
}
for(int i = 0; i < n; i++)
mat[m - 1][i] = a[i];
System.out.println("FORMED MATRIX AFTER ROTATING:");
display(mat);
for(int i = 0; i < m; i++){
for(int j = 0; j < n; j++){
if(mat[i][j] > mat[r][c]){
r = i;
c = j;
}
}
}
System.out.print("HIGHEST ELEMENT: " + mat[r][c]);
System.out.println(" (Row: " + r + " and Column: " + c + ")");
sc.close();
}
public static void display(int mat[][]){
for(int i = 0; i < mat.length; i++){
for(int j = 0; j < mat[0].length; j++){
System.out.print(mat[i][j] + "\t");
}
System.out.println();
}
}
}