Giả sử chúng ta có một ma trận 3x3, các phần tử đường chéo ban đầu rỗng. Chúng ta phải điền đường chéo sao cho tổng của một hàng, cột và đường chéo sẽ giống nhau. Giả sử ma trận như sau:
Sau khi điền, nó sẽ trở thành:
Giả sử các phần tử đường chéo là x, y, z. Các giá trị sẽ là:
- x = (M[2, 3] + M[3, 2])/ 2
- z = (M[1, 2] + M[2, 1])/ 2
- y = (x + z)/2
Ví dụ
#include<iostream> using namespace std; void displayMatrix(int matrix[3][3]) { for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) cout << matrix[i][j] << " "; cout << endl; } } void fillDiagonal(int matrix[3][3]) { matrix[0][0] = (matrix[1][2] + matrix[2][1]) / 2; matrix[2][2] = (matrix[0][1] + matrix[1][0]) / 2; matrix[1][1] = (matrix[0][0] + matrix[2][2]) / 2; cout << "Final Matrix" << endl; displayMatrix(matrix); } int main() { int matrix[3][3] = { { 0, 3, 6 }, { 5, 0, 5 }, { 4, 7, 0 }}; cout << "Given Matrix" << endl; displayMatrix(matrix); fillDiagonal(matrix); }
Kết quả
Given Matrix 0 3 6 5 0 5 4 7 0 Final Matrix 6 3 6 5 5 5 4 7 4