Project 9: Answer

Rumman Ansari   Software Engineer   2026-02-15 11:13:56   22  Share
Subject Syllabus DetailsSubject Details
☰ TContent
☰Fullscreen

Table of Content:


import java.util.Scanner;

public class MatrixOperations {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        // Input M and N
        System.out.print("Enter number of rows (M): ");
        int M = sc.nextInt();

        System.out.print("Enter number of columns (N): ");
        int N = sc.nextInt();

        // Validate input
        if (M <= 2 || M >= 10 || N <= 2 || N >= 10) {
            System.out.println("INVALID INPUT");
            return;
        }

        int[][] A = new int[M][N];

        // Input elements
        System.out.println("Enter elements of the matrix:");
        for (int i = 0; i < M; i++) {
            for (int j = 0; j < N; j++) {
                A[i][j] = sc.nextInt();
            }
        }

        // (a) Display the input matrix
        System.out.println("\nInput Matrix:");
        displayMatrix(A);

        // (b) Rotate the matrix by 270° anti-clockwise
        System.out.println("\nMatrix after 270° anti-clockwise rotation:");
        int[][] rotated = rotate270AntiClockwise(A);
        displayMatrix(rotated);

        // (c) Calculate sum of odd elements
        int sumOdd = sumOddElements(A);
        System.out.println("\nSum of odd elements: " + sumOdd);

        sc.close();
    }

    // Function to display a matrix
    public static void displayMatrix(int[][] matrix) {
        for (int[] row : matrix) {
            for (int val : row) {
                System.out.print(val + "\t");
            }
            System.out.println();
        }
    }

    // Function to rotate matrix by 270° anti-clockwise
    public static int[][] rotate270AntiClockwise(int[][] matrix) {
        int M = matrix.length;
        int N = matrix[0].length;
        int[][] rotated = new int[N][M]; // Note dimensions swapped

        for (int i = 0; i < M; i++) {
            for (int j = 0; j < N; j++) {
                rotated[N - 1 - j][i] = matrix[i][j];
            }
        }
        return rotated;
    }

    // Function to sum odd elements
    public static int sumOddElements(int[][] matrix) {
        int sum = 0;
        for (int[] row : matrix) {
            for (int val : row) {
                if (val % 2 != 0) {
                    sum += val;
                }
            }
        }
        return sum;
    }
}


How it works:

  1. Input Validation:
    Checks if M and N are >2 and <10. Prints INVALID INPUT otherwise.

  2. Matrix Input & Display:
    Reads integers into a 2D array and prints it.

  3. Rotation 270° Anti-Clockwise:

    • 270° anti-clockwise rotation is equivalent to 90° clockwise rotation of the transposed matrix.

    • The formula used: rotated[N-1-j][i] = matrix[i][j].

  4. Sum of Odd Elements:
    Iterates through all elements and sums those which are odd (val % 2 != 0).


Example Run:

Input:


M = 3
N = 4
Elements: 8 7 9 3 -2 0 4 5 1 3 6 -4

Output:


Input Matrix:
8   7   9   3
-2  0   4   5
1   3   6  -4

Matrix after 270° anti-clockwise rotation:
3   5  -4
9   4   6
7   0   3
8  -2   1

Sum of odd elements: 38


code


import java.util.Scanner;

public class Question2Matrix {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        // Input M and N
        System.out.print("Enter number of rows (M): ");
        int M = sc.nextInt();

        System.out.print("Enter number of columns (N): ");
        int N = sc.nextInt();

        // Validate input
        if (M <= 2 || M >= 10 || N <= 2 || N >= 10) {
            System.out.println("INVALID INPUT");
            sc.close();
            return;
        }

        int[][] A = new int[M][N];

        // Input elements
        System.out.println("Enter elements of the matrix:");
        for (int i = 0; i < M; i++) {
            for (int j = 0; j < N; j++) {
                A[i][j] = sc.nextInt();
            }
        }

        // (a) Display Original Matrix
        System.out.println("\nORIGINAL MATRIX:");
        displayMatrix(A);

        // (b) Rotate by 270° anti-clockwise
        int[][] rotated = rotate270AntiClockwise(A);
        System.out.println("\nROTATED MATRIX (270° ANTI CLOCKWISE):");
        displayMatrix(rotated);

        // (c) Sum of odd elements
        int sumOdd = sumOddElements(A);
        System.out.println("\nSUM OF THE ODD ELEMENTS = " + sumOdd);

        sc.close();
    }

    // Function to display a matrix
    public static void displayMatrix(int[][] matrix) {
        for (int[] row : matrix) {
            for (int val : row) {
                System.out.print(val + "\t");
            }
            System.out.println();
        }
    }

    // Function to rotate matrix 270° anti-clockwise
    public static int[][] rotate270AntiClockwise(int[][] matrix) {
        int M = matrix.length;
        int N = matrix[0].length;
        int[][] rotated = new int[N][M]; // Swap dimensions

        for (int i = 0; i < M; i++) {
            for (int j = 0; j < N; j++) {
                rotated[N - 1 - j][i] = matrix[i][j];
            }
        }
        return rotated;
    }

    // Function to calculate sum of odd elements
    public static int sumOddElements(int[][] matrix) {
        int sum = 0;
        for (int[] row : matrix) {
            for (int val : row) {
                if (val % 2 != 0) {
                    sum += val;
                }
            }
        }
        return sum;
    }
}



Stay Ahead of the Curve! Check out these trending topics and sharpen your skills.