import java.util.*;
public class Matrix {
public static void main(String[] args) {
// Create a single Scanner object for System.in
Scanner scanner = new Scanner(System.in);
// Pass the single Scanner object to the Trans constructor
Trans obj = new Trans(scanner);
obj.fillarray();
obj.display();
// Close the Scanner
scanner.close();
}
}
class Trans {
private int m;
private int[][] arr;
private int[][] arrT;
private Scanner in;
Trans(Scanner scanner) {
this.in = scanner;
System.out.println("Enter the order (size) of the square matrix:");
this.m = in.nextInt();
this.arr = new int[m][m];
this.arrT = new int[m][m];
}
public void fillarray() {
System.out.println("\n--- Entering elements for the " + m + "x" + m + " matrix ---");
for (int i = 0; i < m; i++) {
for (int j = 0; j < m; j++) {
System.out.println("Input element at [" + i + "][" + j + "]:");
arr[i][j] = in.nextInt();
}
}
}
public void display() {
System.out.println("\nORIGINAL MATRIX:");
printMatrix(arr);
transpose();
}
private void transpose() {
System.out.println("\nTRANSPOSE OF THE MATRIX:");
// The core logic for transpose: ArrT[i][j] = Arr[j][i]
for (int i = 0; i < m; i++) {
for (int j = 0; j < m; j++) {
arrT[i][j] = arr[j][i];
}
}
printMatrix(arrT);
}
// Helper method for cleaner printing and better formatting
private void printMatrix(int[][] matrix) {
for (int i = 0; i < m; i++) {
for (int j = 0; j < m; j++) {
// Use format for aligned columns, which improves readability
System.out.format("%5d", matrix[i][j]);
}
System.out.println();
}
}
}
No comments:
Post a Comment