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

• Last Updated : 06 Jun, 2021

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`

## Python3

 `# 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 initially:"``)` `print_(arr, n)` `find(arr, n)`   `# This code is contributed by Shrikant13`

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

 ``

## Javascript

 ``

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
Recommended Articles
Page :