# 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++ 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 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 `

 `# Python3 program to implement ` `# the above problem ` ` `  `# Function to print the matrix ` `def` `print_(arr, n): ` `    ``for` `i ``in` `range``(n): ` `        ``for` `j ``in` `range``(n): ` `            ``print``(arr[i][j], end ``=` `" "``) ` `        ``print``(``"\n"``, end``=` `"") ` ` `  `# Function to find the diagonal values ` `def` `find(arr, n): ` `    ``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``(``"\nMatrix with diagonals:"``) ` `    ``print_(arr, n) ` ` `  `# Driver code ` `arr ``=` `[[``0``, ``54``, ``48``], ` `       ``[``36``, ``0``, ``78``], ` `       ``[``66``, ``60``, ``0``]] ` ` `  `n ``=` `3` `print``(``"Matrix initally:"``) ` `print_(arr, n) ` `find(arr, n) ` ` `  `# This code is contributed by Shrikant13 `

 `// 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 `

 ` `

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

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

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Article Tags :
Practice Tags :