สมมติว่าเรามีเมทริกซ์ขนาด 3x3 หนึ่งตัว ซึ่งองค์ประกอบในแนวทแยงว่างเปล่าในตอนแรก เราต้องเติมเส้นทแยงมุมเพื่อให้ผลรวมของแถว คอลัมน์ และแนวทแยงเท่ากัน สมมติว่าเมทริกซ์เป็นเหมือน -
กรอกเสร็จแล้วจะเป็น −
สมมติว่าองค์ประกอบในแนวทแยงคือ x, y, z ค่าจะเป็น −
- x =(M[2, 3] + M[3, 2])/ 2
- z =(M[1, 2] + M[2, 1])/ 2
- y =(x + z)/2
ตัวอย่าง
#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); }
ผลลัพธ์
Given Matrix 0 3 6 5 0 5 4 7 0 Final Matrix 6 3 6 5 5 5 4 7 4