как получить положение строки и столбца второго по величине элемента квадратной матрицы в java

#java #arrays #sorting #for-loop #matrix

Вопрос:

Задан список квадратных матриц [ ] [ ] порядка ‘n’. Максимальное возможное значение для » n » равно 20. Введите значение » n » и положительные целые числа в матрицу и выведите позицию строки и столбца второго по величине элемента матрицы.

У меня есть позиция самого большого элемента. Но застрял при получении позиции второго по величине элемента. код ниже-

 import java.util.*;
class MatrixList
{
    public static void main(String args[])
    {
        Scanner scan = new Scanner(System.in);
        
        System.out.println("Enter the nber of rows");
        int n = scan.nextInt();
        
        if(n > 20)
        {
            System.out.println("number should not be greater than 20.");
        }
        else
        {
            int matrix[][] = new int[n][n];
            int i,j,rowg,colg,rows,cols,flag1,flag2,k,t;
            
            for(i=0;i<n;i  ){
                for(j=0;j<n;j  ){
                    matrix[i][j] = scan.nextInt();
                }
            }
            
            System.out.println("Orignal Matrix: ");
            for(i=0;i<n;i  ){
                for(j=0;j<n;j  ){
                    System.out.print(matrix[i][j]   " ");
                }
                System.out.println("");
            }
            flag1 = flag2 = matrix[0][0];
            rowg = colg = rows = cols =0;
            
            for(i=0;i<n;i  ){
                for(j=0;j<n;j  ){
                    //checking greatest element
                    if(flag2 < matrix[i][j]){
                        flag2 = matrix[i][j];
                        rowg = i;
                        colg = j;
                    }
                    //checking second greatest element
                    **if(flag1 < matrix[i 1][j 1]){
                        flag1 = matrix[i 1][j 1];
                        rows = i;
                        cols = j;
                    }**
                }
            }
            
            for(i =0; i<n;i  ){
                for(j=0;j<n;j  ){
                    for(k=j 1;k<n;k  ){
                        if(matrix[i][j] > matrix[i][k]){
                            t = matrix[i][j];
                            matrix[i][j] = matrix[i][k];
                            matrix[i][k] = t;
                        }
                    }
                }
            }
            System.out.println("The largest element " flag2 " is in row " (rowg 1) " and column " (colg 1));
            System.out.println("The smallest element " flag1 " is in row " (rows 1) " and column " (cols 1));
            
            System.out.println("Sorted Matrix: ");
            for(i=0;i<n;i  ){
                for(j=0;j<n;j  ){
                    System.out.print(matrix[i][j]   " ");
                }
                System.out.println();
            }
        }
    }
}
 

Комментарии:

1. разрешено ли вам использовать функцию сортировки ()?