C Programs Tutorials | IT Developer
IT Developer

Java Programs - Advanced



Share with a Friend

Shift Matrix Rows Up Program - Java Program

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:

100

90

87

76

200

500

167

998

77

567

89

254

 

OUTPUT:
FORMED MATRIX AFTER ROTATING:

200

500

167

998

77

567

89

254

100

90

87

76

Highest element: 998 (Row: 0 and Column: 3)

 

Example 2
INPUT:
M = 4
N = 3
Enter elements in the matrix:

54

120

187

78

55

289

134

67

89

63

341

122

OUTPUT:
FORMED MATRIX AFTER ROTATING:

78

55

289

134

67

89

63

341

122

54

120

187

Highest element: 341 (Row: 2 and Column: 1)

 

Example 3
INPUT:
M = 2
N = 3
OUTPUT: SIZE IS OUT OF RANGE. INVALID ENTRY.

 

import java.util.Scanner; class ShiftRows{ public static void main(String[] args){ Scanner in = new Scanner(System.in); System.out.print("M = "); int m = Integer.parseInt(in.nextLine()); System.out.print("N = "); int n = Integer.parseInt(in.nextLine()); 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] = Integer.parseInt(in.nextLine()); } } 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 + ")"); } 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(); } } }

Output

 
OUTPUT 1:
M = 4
N = 3
ENTER ELEMENTS IN THE MATRIX:
100
90
87
76
200
500
167
998
77
567
89
254
ORIGINAL MATRIX:
100 90  87  
76  200 500 
167 998 77  
567 89  254 
FORMED MATRIX AFTER ROTATING:
76  200 500 
167 998 77  
567 89  254 
100 90  87  
HIGHEST ELEMENT: 998 (Row: 1 and Column: 1)

OUTPUT 2:
M = 4
N = 3
ENTER ELEMENTS IN THE MATRIX:
54
120
187
78
55
289
134
67
89
63
341
122
ORIGINAL MATRIX:
54  120 187 
78  55  289 
134 67  89  
63  341 122 
FORMED MATRIX AFTER ROTATING:
78  55  289 
134 67  89  
63  341 122 
54  120 187 
HIGHEST ELEMENT: 341 (Row: 2 and Column: 1)

OUTPUT 3:
M = 2
N = 3
SIZE IS OUT OF RANGE. INVALID ENTRY.