import java.util.Scanner; public class lab_2 { public static short protectedInput(String inputPrompt, String errorMessage, Scanner input) { short read_variable; do { try { System.out.println(); System.out.print(inputPrompt); read_variable = input.nextShort(); break; } catch (Exception e) { System.out.println(errorMessage); input.nextLine(); } } while (true); return read_variable; } public static String format(int number) { int width = String.valueOf(number).length() + 1; String format = "|%" + width + "d "; return format; } public static double average(short[] row) { short sum = 0; for (short element : row) { sum += element; } double result = sum / row.length; return result; } public static void main(String[] args) { short a, rows = 0, columns = 0; String format; Scanner input = new Scanner(System.in); a = protectedInput("Input a constant to multipy a matrix by: ", "A constant must be a short-data type integer, try again.", input); System.out.println(); System.out.println("Input size of the matrix."); do { rows = protectedInput("Rows: ", "A number of rows must be a short-data type integer, try again.", input); } while (rows <= 0); do { columns = protectedInput("Columns: ", "A number of columns must be a short-data type integer, try again.", input); } while (columns <= 0); input.close(); short[][] matrix_B = new short[rows][columns]; System.out.println(); System.out.println("Matrix B:"); format = format(rows * columns); for (short i = 0; i < rows; i++) { for (short j = 0; j < columns; j++) { matrix_B[i][j] = (short) ((i + 1) * (j + 1)); System.out.printf(format, matrix_B[i][j]); } System.out.println("|"); } System.out.println(); System.out.println("Matrix a×B:"); format = format(rows * columns * a); for (short i = 0; i < matrix_B.length; i++) { for (short j = 0; j < matrix_B[i].length; j++) { matrix_B[i][j] *= (short) (a); System.out.printf(format, matrix_B[i][j]); } System.out.println("|"); } System.out.println(); System.out.println("Averages of each row:"); for (short[] row : matrix_B) { System.out.println(average(row)); } } }