В этом посте о программировании на Java я покажу вам, как сложить два массива и создать из них новый массив.
Сложение массивов в Java заключается в сложении каждого элемента первого массива с элементом той же позиции второго массива и помещении результата в третий массив, который и будет результатом.
В дополнение к демонстрации суммы я покажу вам, как вывести три массива.
Проход по матрице
Прежде чем перейти к рассмотрению добавления элементов массива, давайте посмотрим, как обходить сам массив. Помните, что вы можете использовать любой метод, но я буду использовать два цикла for.
for (int y = 0; y < matrix1.length; y++) { for (int x = 0; x < matrix1[y].length; x++) { } }
Во втором цикле у нас уже есть доступ к элементу, для этого мы обращаемся к matrix[y][x].
Выполнение сложения матриц
Поскольку обе матрицы измеряют одно и то же, нам нужно только выполнить путь в одной из них и обратиться к элементам обеих в одинаковых позициях, чтобы сложить их и сохранить результат в третьей матрице.
Мы начинаем объявлять матрицу, в которой будет находиться сумма, и приступаем к сложению элементов:
// Сначала вычисляем сумму
int[][] matrixSum = new int[matrix1.length][matrix1[0].length];
for (int y = 0; y < matrix1.length; y++) {
for (int x = 0; x < matrix1[y].length; x++) {
int numMatrix1 = matrix1[y][x];
int numMatrix2 = matrix2[y][x];
int sum = numMatrix1 + numMatrix2;
matrixSum[y][x] = sum;
}
}
Code language: JavaScript (javascript)
Теперь осталось только вывести результат.
// Затем выводим заголовки
System.out.println("\t\t\t1\t\t\t\t\t2\t\t\t\tСумма");
for (int x = 0; x < 62; x++) {
System.out.print("_");
}
System.out.println();
// Наконец, выводим результат
for (int y = 0; y < matrix1.length; y++) {
for (int x = 0; x < matrix1[y].length; x++) {
System.out.printf("%5d ", matrix1[y][x]);
}
System.out.print(" | ");
for (int x = 0; x < matrix2[y].length; x++) {
System.out.printf("%5d ", matrix2[y][x]);
}
System.out.print(" | ");
for (int x = 0; x < matrixSum[y].length; x++) {
System.out.printf("%5d ", matrixSum[y][x]);
}
System.out.print(" | ");
System.out.println();
}
Code language: PHP (php)
В этом случае 3 матрицы должны быть выведены на одной строке, поэтому я сделал это таким образом. При желании вы можете изменить порядок печати или распечатать матрицы вертикально.
Собираем все вместе
В конце у нас есть функция, которая получает два массива, создает новый с результатом и печатает три массива, показывая, что код работает отлично.
Полный код выглядит следующим образом:
public class Main {
static void summMatrixes(int[][] matriz1, int[][] matriz2) {
// Сначала вычисляем сумму
int[][] matrixSum = new int[matrix1.length][matrix1[0].length];
for (int y = 0; y < matrix1.length; y++) {
for (int x = 0; x < matrix1[y].length; x++) {
int numMatrix1 = matrix1[y][x];
int numMatrix2 = matrix2[y][x];
int sum = numeroMatrix1 + numeroMatrix2;
matrixSum[y][x] = sum;
}
}
// Затем выводим заголовки
System.out.println("\t\t\t1\t\t\t\t\t2\t\t\t\tСумма");
for (int x = 0; x < 62; x++) {
System.out.print("_");
}
System.out.println();
// Наконец, выводим результат
for (int y = 0; y < matrix1.length; y++) {
for (int x = 0; x < matrix1[y].length; x++) {
System.out.printf("%5d ", matrix1[y][x]);
}
System.out.print(" | ");
for (int x = 0; x < matrix2[y].length; x++) {
System.out.printf("%5d ", matrix2[y][x]);
}
System.out.print(" | ");
for (int x = 0; x < matrixSum[y].length; x++) {
System.out.printf("%5d ", matrixSum[y][x]);
}
System.out.print(" | ");
System.out.println();
}
}
public static void main(String[] args) {
int[][] matrix1 = {
{10, 5, 12},
{98, 5, 6},
{8, 4, 6},
};
int[][] matrix2 = {
{8, 7, 5},
{19, 56, 4},
{8, 76, 90},
};
summMatrixes(matrix1, matrix2);
}
}
Code language: PHP (php)