#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. разрешено ли вам использовать функцию сортировки ()?