Q11
Pg 127unknown
java
2 years ago
4.0 kB
4
Indexable
import java.util.Scanner; public class MatrixOperations { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Enter the number of rows (M): "); int rows = scanner.nextInt(); System.out.print("Enter the number of columns (N): "); int columns = scanner.nextInt(); if (rows <= 2 || columns <= 2 || rows >= 20 || columns >= 20) { System.out.println("Invalid matrix dimensions. Rows and columns must be between 3 and 19."); return; } int[][] matrix = new int[rows][columns]; System.out.println("Enter the elements of the matrix:"); for (int i = 0; i < rows; i++) { for (int j = 0; j < columns; j++) { System.out.print("Element [" + (i + 1) + "][" + (j + 1) + "]: "); matrix[i][j] = scanner.nextInt(); } } System.out.println("\nInput Matrix:"); displayMatrix(matrix); int[] max = findMaxValue(matrix); int[] min = findMinValue(matrix); System.out.println("\nMaximum value: " + max[0] + " at row " + max[1] + ", column " + max[2]); System.out.println("Minimum value: " + min[0] + " at row " + min[1] + ", column " + min[2]); sortMatrix(matrix); System.out.println("\nSorted Matrix:"); displayMatrix(matrix); } public static void displayMatrix(int[][] matrix) { int rows = matrix.length; int columns = matrix[0].length; for (int i = 0; i < rows; i++) { for (int j = 0; j < columns; j++) { System.out.print(matrix[i][j] + " "); } System.out.println(); } } public static int[] findMaxValue(int[][] matrix) { int max = matrix[0][0]; int rows = matrix.length; int columns = matrix[0].length; int maxRow = 0; int maxColumn = 0; for (int i = 0; i < rows; i++) { for (int j = 0; j < columns; j++) { if (matrix[i][j] > max) { max = matrix[i][j]; maxRow = i; maxColumn = j; } } } return new int[]{max, maxRow, maxColumn}; } public static int[] findMinValue(int[][] matrix) { int min = matrix[0][0]; int rows = matrix.length; int columns = matrix[0].length; int minRow = 0; int minColumn = 0; for (int i = 0; i < rows; i++) { for (int j = 0; j < columns; j++) { if (matrix[i][j] < min) { min = matrix[i][j]; minRow = i; minColumn = j; } } } return new int[]{min, minRow, minColumn}; } public static void sortMatrix(int[][] matrix) { int rows = matrix.length; int columns = matrix[0].length; int totalElements = rows * columns; // Flattening the matrix into a 1D array for sorting int[] flattenedMatrix = new int[totalElements]; int index = 0; for (int i = 0; i < rows; i++) { for (int j = 0; j < columns; j++) { flattenedMatrix[index++] = matrix[i][j]; } } // Bubble sort for (int i = 0; i < totalElements - 1; i++) { for (int j = 0; j < totalElements - i - 1; j++) { if (flattenedMatrix[j] > flattenedMatrix[j + 1]) { int temp = flattenedMatrix[j]; flattenedMatrix[j] = flattenedMatrix[j + 1]; flattenedMatrix[j + 1] = temp; } } } // Rearranging the sorted elements back into the matrix index = 0; for (int i = 0; i < rows; i++) { for (int j = 0; j < columns; j++) { matrix[i][j] = flattenedMatrix[index++]; } } } }
Editor is loading...