## Sunday, 28 August 2016

### Chapter 8 Exercise 5, Introduction to Java Programming, Tenth Edition Y. Daniel LiangY.

8.5 (Algebra: add two matrices) Write a method to add two matrices. The header of the method is as follows:
public static double[][] addMatrix(double[][] a, double[][] b)

In order to be added, the two matrices must have the same dimensions and the same or compatible types of elements. Let c be the resulting matrix. Each element  is $+{b}_{ij}$. For example, for two 3 * 3 matrices a and b, c is

Write a test program that prompts the user to enter two 3 * 3 matrices and displays their sum. Here is a sample run:

Enter matrix1:1 2 3 4 5 6 7 8 9
Enter matrix2:0 2 4 1 4.5 2.2 1.1 4.3 5.2
The matrices are added as follows
1.0    2.0    3.0    0.0    2.0    4.0    1.0 4.0 7.0
4.0    5.0    6.0  + 1.0    4.5    2.2  = 5.0 9.5 8.2
7.0    8.0    9.0    1.1    4.3    5.2    8.1 12.3 14.2

import java.util.Scanner;

public class ProgramingEx8_5 {

public static void main(String[] args) {
double[][] a = new double[3][3];
double[][] b = new double[3][3];
double[][] result;

java.util.Scanner input = new Scanner(System.in);
System.out.print("Enter matrix1:");
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[0].length; j++) {
a[i][j] = input.nextDouble();
}

}

System.out.print("Enter matrix2:");
for (int i = 0; i < b.length; i++) {
for (int j = 0; j < b[0].length; j++) {
b[i][j] = input.nextDouble();
}

}

// printing
System.out.println("The matrices are added as follows");
for (int i = 0; i < result.length; i++) {
for (int j = 0; j < result[0].length; j++) {

System.out.print(a[i][j] + " ");
if (i == 1 && j == 2) {
System.out.print(" + ");
} else {
System.out.print("   ");
}
}
for (int j = 0; j < result[0].length; j++) {
System.out.print(b[i][j] + " ");
if (i == 1 && j == 2) {
System.out.print(" = ");
} else {
System.out.print("   ");
}
}
for (int j = 0; j < result[0].length; j++) {
System.out.print(result[i][j] + " ");
}
System.out.println();
}

}

public static double[][] addMatrix(double[][] a, double[][] b) {
// Check metrix dimension
if (a.length != b.length || a[0].length != b[0].length)
return null;

double[][] result = new double[b.length][a[0].length];

for (int i = 0; i < result.length; i++) {
for (int j = 0; j < result[0].length; j++) {
result[i][j] = a[i][j] + b[i][j];
}

}

return result;

}

}