Ví dụ:
Ma trận tăng dần theo đường chéo chính như sau
11.00 16.00 20.00 23.00 25.00
47.00 12.00 147.00 21.00 24.00
1.00 50.00 13.00 15.00 0
1.00 50.00 13.00 14.00 100
1.00 460.00 13.00 15.00 15.00
Ma trận tăng dần theo đường chéo chính như sau
11.00 16.00 20.00 23.00 25.00
47.00 12.00 147.00 21.00 24.00
1.00 50.00 13.00 15.00 0
1.00 50.00 13.00 14.00 100
1.00 460.00 13.00 15.00 15.00
Ý tưởng:
Giống như cách sắp xếp trên mảng 1 chiều, ta xem đường chéo chính như là mảng một chiều sau đó kiểm tra nó có tăng dần không, nếu tăng dần trả về 1, ngược lại bằng 0
Cách làm:
Viết hai hàm:
- Một hàm dùng để kiểm tra tăng dần (ktTangDan)
- Một hàm xuất kết quả
Ghi Chú:
- Các hàm nhập, xuất tự viết!
Chương trình
/* ------------------------------------------
* Author: zidane (huuvi168@gmail.com)
* Last modified: 2015-07-03
* -----------------------------------------/
// n số phần tử của mảng a
int ktTangDan(float a[], int n)
{
bool flag = true;
for (int i=0; i<=n-1; i++)
for (int j=i+1; j<=n; i++)
// chỉ cần một phần tử thỏa là không tăng dần
if (a[i] > a[j])
// giá trị trả về trong hàm function (pascal)
flag = false;
return flag;
}
// n, m là dòng và cột trong ma trận (ma trận vuông)
void ktTangDanDuongCheoChinh(float a[][100], int n)
{
float b[100];
for (int i=0; i<n; i++)
b[i] = a[i][i];
if (ktTangDan(b, n) == true)
printf("Duong cheo chinh tang dan");
else
printf("Duong cheo chinh KHONG tang dan");
}