# Filling diagonal to make the sum of every row, column and diagonal equal of 3×3 matrix

Given 9 elements in a 3 x 3 matrix where the value of diagonals are 0. We need to find the values in diagonal to make the sum of every row, column and diagonal equal.

Examples:

```Input:
0 3 6
5 0 5
4 7 0
Output:
6 3 6
5 5 5
4 7 4
Explanation:
Now the value of the sum of
any row or column is 15

Input:
0 4 4
4 0 4
4 4 0
Output:
4 4 4
4 4 4
4 4 4
```

Approach:

• Let’s say the diagonal is x, y and z.
• The value of x will be ( x2, 3 + x3, 2 ) / 2.
• The value of z will be ( x1, 2 + x2, 1 ) / 2.
• The value of y will be ( x + z ) / 2.

Below is the implementation of the above approach:

Program:

## C++

 `// C++ program to implement ` `// the above problem ` ` `  `#include ` `using` `namespace` `std; ` ` `  `// Function to print the matrix ` `void` `print(``int` `arr[3][3]) ` `{ ` `    ``int` `i = 0, j = 0; ` ` `  `    ``for` `(i = 0; i < 3; i++) { ` `        ``for` `(j = 0; j < 3; j++) ` `            ``cout << arr[i][j] << ``" "``; ` `        ``cout << endl; ` `    ``} ` `} ` ` `  `// Function to find the diagonal values ` `void` `find(``int` `arr[3][3]) ` `{ ` `    ``arr[0][0] = (arr[1][2] + arr[2][1]) / 2; ` `    ``arr[2][2] = (arr[0][1] + arr[1][0]) / 2; ` `    ``arr[1][1] = (arr[0][0] + arr[1][1]) / 2; ` ` `  `    ``// Print the new matrix with diagonals ` `    ``cout << ``"Matrix with diagonals:\n"``; ` `    ``print(arr); ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``// Initialize all the elements of a matrix ` `    ``int` `arr[3][3] = { { 0, 54, 48 }, ` `                      ``{ 36, 0, 78 }, ` `                      ``{ 66, 60, 0 } }; ` ` `  `    ``cout << ``"Matrix initially:\n"``; ` `    ``print(arr); ` ` `  `    ``find(arr); ` ` `  `    ``return` `0; ` `} `

## Java

 `// Java program to implement  ` `// the above problem  ` `class` `GFG ` `{ ` ` `  `// Function to print the matrix  ` `static` `void` `print(``int` `arr[][])  ` `{  ` `    ``int` `i = ``0``, j = ``0``;  ` ` `  `    ``for` `(i = ``0``; i < ``3``; i++) ` `    ``{  ` `        ``for` `(j = ``0``; j < ``3``; j++)  ` `            ``System.out.print( arr[i][j] + ``" "``);  ` `        ``System.out.println(); ` `    ``}  ` `}  ` ` `  `// Function to find the diagonal values  ` `static` `void` `find(``int` `arr[][])  ` `{  ` `    ``arr[``0``][``0``] = (arr[``1``][``2``] + arr[``2``][``1``]) / ``2``;  ` `    ``arr[``2``][``2``] = (arr[``0``][``1``] + arr[``1``][``0``]) / ``2``;  ` `    ``arr[``1``][``1``] = (arr[``0``][``0``] + arr[``1``][``1``]) / ``2``;  ` ` `  `    ``// Print the new matrix with diagonals  ` `    ``System.out.print( ``"Matrix with diagonals:\n"``);  ` `    ``print(arr);  ` `}  ` ` `  `// Driver code  ` `public` `static` `void` `main(String args[]) ` `{  ` `    ``// Initialize all the elements of a matrix  ` `    ``int` `arr[][] = { { ``0``, ``54``, ``48` `},  ` `                    ``{ ``36``, ``0``, ``78` `},  ` `                    ``{ ``66``, ``60``, ``0` `} };  ` ` `  `    ``System.out.print( ``"Matrix initially:\n"``);  ` `    ``print(arr);  ` ` `  `    ``find(arr);  ` `}  ` `} ` ` `  `// This code is contributed by Arnab Kundu `

## C#

 `// C# program to implement  ` `// the above problem  ` `using` `System; ` ` `  `class` `GFG  ` `{  ` ` `  `    ``// Function to print the matrix  ` `    ``static` `void` `print(``int` `[,]arr)  ` `    ``{  ` `        ``int` `i = 0, j = 0;  ` `     `  `        ``for` `(i = 0; i < 3; i++)  ` `        ``{  ` `            ``for` `(j = 0; j < 3; j++)  ` `                ``Console.Write( arr[i, j] + ``" "``);  ` `                 `  `            ``Console.WriteLine();  ` `        ``}  ` `    ``}  ` `     `  `    ``// Function to find the diagonal values  ` `    ``static` `void` `find(``int` `[,]arr)  ` `    ``{  ` `        ``arr[0, 0] = (arr[1, 2] + arr[2, 1]) / 2;  ` `        ``arr[2, 2] = (arr[0, 1] + arr[1, 0]) / 2;  ` `        ``arr[1, 1] = (arr[0, 0] + arr[1, 1]) / 2;  ` `     `  `        ``// Print the new matrix with diagonals  ` `        ``Console.Write( ``"Matrix with diagonals:\n"``);  ` `        ``print(arr);  ` `    ``}  ` `     `  `    ``// Driver code  ` `    ``public` `static` `void` `Main()  ` `    ``{  ` `        ``// Initialize all the elements of a matrix  ` `        ``int` `[,]arr = { { 0, 54, 48 },  ` `                        ``{ 36, 0, 78 },  ` `                        ``{ 66, 60, 0 } };  ` `     `  `        ``Console.Write( ``"Matrix initially:\n"``);  ` `        ``print(arr);  ` `     `  `        ``find(arr);  ` `    ``}  ` `}  ` ` `  `// This code is contributed by Ryuga `

## PHP

 ` `

Output:

```Matrix initially:
0 54 48
36 0 78
66 60 0

Matrix with diagonals:
69 54 48
36 34 78
66 60 45
```

My Personal Notes arrow_drop_up

Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.