fork download
  1. import java.util.*;
  2. import java.lang.*;
  3. import java.io.*;
  4.  
  5. class MatrixApp
  6. {
  7. private static final int X_INIT = -Integer.MAX_VALUE;
  8.  
  9. public static Integer scanInteger( Scanner in )
  10. {
  11. return ( ( in.hasNextInt() ) ? in.nextInt() : null );
  12. }
  13.  
  14. public static Double scanDouble( Scanner in )
  15. {
  16. return ( ( in.hasNextDouble() ) ? in.nextDouble() : null );
  17. }
  18.  
  19. public static void main( String[] args )
  20. {
  21. // проверка ввода порядка n
  22. Scanner in = new Scanner(System.in);
  23.  
  24. int n = scanInteger( in );
  25.  
  26. if( n <= 0 )
  27. {
  28. System.out.printf("error: incomplete input of n\n");
  29. return;
  30. }
  31.  
  32. if( n <= 1 )
  33. {
  34. System.out.printf("error: wrong value of n\n");
  35. return;
  36. }
  37.  
  38. // создаем массив нужной размерности
  39. double arr[][] = new double[n][n];
  40.  
  41. // ввод матрицы с проверкой
  42. for( int i = 0; i < n; i++ )
  43. {
  44. for( int j = 0; j < n; j++ )
  45. {
  46. arr[i][j] = scanDouble( in );
  47. }
  48. }
  49.  
  50. in.close();
  51.  
  52. // печать введённой матрицы для отладки
  53. System.out.printf("input array:\n");
  54. for( int i = 0; i < n; i++ )
  55. {
  56. for( int j = 0; j < n; j++ )
  57. {
  58. System.out.printf("\t%2.2f", arr[i][j]);
  59. }
  60. System.out.printf("\n");
  61. }
  62.  
  63. // вывод результата, содержит номер строки, где необходимо было искать наибольший элемент
  64. System.out.printf("result:\n");
  65. for( int i = 0; i < n; i++ )
  66. {
  67. if( arr[i][i] < 0 )
  68. {
  69. double x = arr[i][0];
  70. for( int j = 1; j < n; j++ )
  71. {
  72. if( arr[i][j] > x ) x = arr[i][j];
  73. }
  74. System.out.printf("line = %d, max = %2.2f\n", i, x);
  75. }
  76. }
  77.  
  78.  
  79. }
  80. }
Success #stdin #stdout 0.15s 321344KB
stdin
3
0 	1 	3
-2  -5  -1
-4  -9  -4
stdout
input array:
	0.00	1.00	3.00
	-2.00	-5.00	-1.00
	-4.00	-9.00	-4.00
result:
line = 1, max = -1.00
line = 2, max = -4.00