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

โปรแกรม C++ แปลงเมทริกซ์ให้เป็นเมทริกซ์แบบเฉียง (Diagonal Matrix)


บทนำ

กำหนดเมทริกซ์ n×n ต้องการแปลงเป็น Diagonal Matrix ซึ่งเป็นเมทริกซ์ที่สมาชิกนอกเส้นทแยงมุมเป็น 0 ทั้งหมด ส่วนเส้นทแยงมุมคงค่าเดิม

ตัวอย่าง

Input: {{1,2,3}, {4,5,6}, {7,8,9}} → Output: {{1,0,3}, {0,5,0}, {7,0,9}}

แนวคิด

วนลูปทุกตำแหน่ง (i,j) ถ้า i ≠ j และ i+j+1 ≠ n (ไม่อยู่เส้นทแยงมุมหลักและรอง) ให้ตั้งค่าเป็น 0

ตัวอย่างโค้ด C++

#include <iostream>
using namespace std;

const int n = 10;

void diagonal(int arr[][n], int a, int m) {
    for (int i = 0; i < a; i++) {
        for (int j = 0; j < m; j++) {
            if (i != j && i + j + 1 != a)
                arr[i][j] = 0;
        }
    }
    for (int i = 0; i < a; i++) {
        for (int j = 0; j < m; j++)
            cout << arr[i][j] << " ";
        cout << endl;
    }
}

int main() {
    int arr[][n] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
    diagonal(arr, 3, 3);
    return 0;
}

ผลลัพธ์

1 0 3
0 5 0
7 0 9