Sort Matrix Boundary Elements Program in Java | ISC Computer Science 2023 Paper 2

Write a program to declare a square matrix M[][] of order (N × N) where ‘N’ must be greater than 3 and less than 10. Allow the user to input positive integers into this matrix. Perform the following tasks on the matrix:

(a) Sort the boundary elements in ascending order using any standard sorting technique and rearrange them in the matrix in clockwise manner.
(b) Calculate the product of the non-boundary elements.
(c) Display the original matrix, rearranged matrix and only the non-boundary elements of the rearranged matrix with their product.

Test your program for the following data and some random data:

Example 1
INPUT: N = 4

11257
81094
155311
117148

OUTPUT: ORIGINAL MATRIX

11257
81094
155311
117148

REARRANGED MATRIX

1245
171097
15538
1411118

NON-BOUNDARY ELEMENTS

109
53

PRODUCT OF THE NON-BOUNDARY ELEMENTS = 1350

Example 2
INPUT: N = 5

74195
8261019
131351
10051216
181768

OUTPUT: ORIGINAL MATRIX

74195
8261019
131351
10051216
181768

REARRANGED MATRIX

11145
1926106
171357
1605128
1310988

NON-BOUNDARY ELEMENTS

2610
135
0512

PRODUCT OF THE NON-BOUNDARY ELEMENTS = 0

Example 3
INPUT: N = 2
OUTPUT: SIZE OUT OF RANGE

import java.util.Scanner;
class MatrixBoundary{
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        System.out.print("N = ");
        int n = Integer.parseInt(in.nextLine());
        if(n < 4 || n > 9){
            System.out.println("SIZE OUT OF RANGE");
            return;
        }
        int m[][] = new int[n][n];
        int b[] = new int[n * n - (n - 2) * (n - 2)];
        int index = 0;
        int p = 1;
        System.out.println("ENTER MATRIX ELEMENTS:");
        for(int i = 0; i < n; i++){
            for(int j = 0; j < n; j++){
                m[i][j] = Integer.parseInt(in.nextLine());
                if(i == 0 || j == 0 || i == n - 1 || j == n - 1)
                    b[index++] = m[i][j];
                else
                    p *= m[i][j];
            }
        }
        System.out.println("ORIGINAL MATRIX");
        display(m);
        for(int i = 0; i < b.length; i++){
            for(int j = 0; j < b.length - 1 - i; j++){
                if(b[j] > b[j + 1]){
                    int temp = b[j];
                    b[j] = b[j + 1];
                    b[j + 1] = temp;
                }
            }
        }
        index = 0;
        for(int j = 0; j < n; j++)
            m[0][j] = b[index++];
        for(int i = 1; i < n; i++)
            m[i][n - 1] = b[index++];
        for(int j = n - 2; j >= 0; j--)
            m[n - 1][j] = b[index++];
        for(int i = n - 2; i > 0; i--)
            m[i][0] = b[index++];
        System.out.println("REARRANGED MATRIX");
        display(m);
        System.out.println("NON-BOUNDARY ELEMENTS");
        for(int i = 1; i < n - 1; i++){
            for(int j = 1; j < n - 1; j++){
                System.out.print(m[i][j] + "\t");
            }
            System.out.println();
        }
        System.out.println("PRODUCT OF THE NON-BOUNDARY ELEMENTS = " + p);
    }
    public static void display(int a[][]){
        for(int i = 0; i < a.length; i++){
            for(int j = 0; j < a.length; j++){
                System.out.print(a[i][j] + "\t");
            }
            System.out.println();
        }
    }
}

Leave a Reply

Your email address will not be published. Required fields are marked *