Ma trận tam giác trên là ma trận vuông mà tất cả các phần tử dưới đường chéo chính đều bằng 0 (chỉ giữ phần tử trên hoặc trên đường chéo: i <= j).
Điều kiện
if (i <= j)
Console.Write(A[i, j] + "\t"); // Giữ nguyên
else
Console.Write("0\t"); // Phần dưới đường chéo = 0
Mã nguồn
using System;
class Demo {
static void Main() {
int m, n, i, j;
Console.Write("Nhập số hàng và cột của ma trận: ");
m = Convert.ToInt16(Console.ReadLine());
n = Convert.ToInt16(Console.ReadLine());
int[,] A = new int[10, 10];
Console.Write("\nNhập các phần tử: ");
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
A[i, j] = Convert.ToInt16(Console.ReadLine());
}
}
Console.WriteLine("\nMa trận tam giác trên:");
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
if (i <= j)
Console.Write(A[i, j] + "\t");
else
Console.Write("0\t");
}
Console.WriteLine();
}
Console.ReadLine();
}
}
Ví dụ
Ma trận 3x3 nhập:
1 2 3
4 5 6
7 8 9
Ma trận tam giác trên:
1 2 3
0 5 6
0 0 9
Lưu ý
- Chỉ áp dụng cho ma trận vuông (số hàng = số cột).
- Code gốc có lỗi logic: in ma trận gốc rồi mới in tam giác trên, và vòng lặp thứ 2 chỉ chạy j < 3 (hardcoded). Đã sửa trong bản này.
- Ma trận tam giác dưới (Lower Triangular) ngược lại: giữ
i >= j.