Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

เติมค่าเส้นทแยงมุมเพื่อให้ผลรวมแถว คอลัมน์ และเส้นทแยงเท่ากันในเมทริกซ์ 3x3 ด้วย C++

สมมติว่าเรามีเมทริกซ์ 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