public class Matrix {
int[][] matrix;
public Matrix(int rows, int columns) {
matrix = new int[rows][columns];
}
public void set(int row, int column, int value) {
matrix[row][column] = value;
}
public void printSum() {
int result = 0;
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[0].length; j++) {
result += matrix[i][j];
}
}
System.out.println("Suma : "+result);
}
public void printMatrixTransposed(){
int [][] transposedMatrix = new int [matrix[0].length][matrix.length];
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[0].length; j++){
transposedMatrix [j][i] = matrix[i][j];
}
}
for (int i = 0; i < transposedMatrix.length; i++) {
System.out.println();
for (int j = 0; j < transposedMatrix[0].length; j++) {
System.out.printf("%d ", transposedMatrix[i][j]);
}
}
}
}
Нужно написать сколько rows / columns
, их параметры. И вывести матрицу Транспротованую.
public static void main(String[] args) {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter rows :");
int rows = reader.read();
System.out.println("Enter columns :");
int colums = reader.read();
Matrix matrix = new Matrix(rows, colums);
for (int i = 0; i < rows; i++) {
for (int j = 0; j < colums; j++) {
System.out.println("Enter : [" + i + "," + j + "]");
matrix.set(i, j, reader.read());
}
}
reader.close();
} catch (IOException ex) {
ex.printStackTrace();
}
Оно выводит так:
Enter rows : 2
Enter columns :
Enter : [0,0] 1
Enter : [0,1]
Enter : [0,2] 2
Enter : [0,3]
Enter : [0,4] 3
Enter : [0,5]
Enter : [0,6]`
А нужно так
Enter rows : 2
Enter kolums : 2
Enter : [0,0] 1
Enter : [0,1] 2
Enter : [1,0] 3
Enter : [1,1] 4
Suma : 10
1 3
2 4
Вместо read()
используйте readLine()
Функция BufferedReader::read() возвращает не само число, которое вы вводили, а номер символа. Например, для символа '1'
вернется 49
, для '2'
вернется 50
, и т.п.
А если нужно считать именно как число, то используйте Scanner::nextInt:
Scanner sc = new Scanner(System.in);
System.out.print("Enter rows: ");
int rows = sc.nextInt();
System.out.println(rows);
System.out.print("Enter columns: ");
int colums = sc.nextInt();
System.out.println(colums);
PS. вот еще пример -- номер символа превращаем в сам символ:
char c = (char) 49;
System.out.println(c); // 1
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Необходимо сверстать адаптивный блок в котором текст будет в центре и выровнен по левому краюТакая вот простая задачка, решение которой...