Bài 342(*): Đếm số lượng phần tử cực đại ma trận số thực Một phần tử gọi cực đại lớn phần tử xung quanh #include #include #include #define MAX 100 void NhapMang(float a[][MAX], int &dong, int &cot) { //Nhập số dòng { printf("\nNhap vao so dong: "); // Cách tà đạo: scanf("dong =%d",&dong); // Lúc nhập phải viết thêm scanf("%d",&dong); if(dong < || dong > MAX) { printf("\nSo dong khong hop le Xin kiem tra lai!"); } }while(dong < || dong > MAX); //Nhập số cột { printf("\nNhap vao so cot: "); chữ ( dong = ) khung console scanf("%d",&cot); if(cot < || cot > MAX) { printf("\nSo cot khong hop le Xin kiem tra lai!"); } }while(cot < || cot > MAX); for(int i = 0; i < dong; i++) { for(int j = 0; j < cot; j++) { float temp; printf("\nNhap a[%d][%d] = ", i, j); scanf("%f", &temp); a[i][j] = temp; } } } void XuatMang(float a[][MAX], int dong, int cot) { for(int i = 0; i < dong; i++) { for(int j = 0; j < cot; j++) { printf("%8.3f", a[i][j]); } printf("\n\n"); } } /* Chỉ số -1 Chỉ số: -1 | -1 | | | // phần tử cực đại */ /* Đầu tiên đặt flag=1 tức mặc định giá trị ô a[d][c] cực đại, ô xung quanh ô a[d][c] có giá trị lớn (a[d][c]= && jx + dj[i] < n) { if (no < a[ix + di[i]][jx + dj[i]]) CD = false; if (no > a[ix + di[i]][jx + dj[i]]) CT = false; if (!CD && !CT) break; } } if (!CD && !CT) return false; return true; }*/ void DemSoPhanTuCucDai(float a[][MAX], int sodong, int socot) { int dem = 0; printf("\nCac phan tu cuc dai la: \n"); for(int i = 0; i < sodong; i++) { for(int j = 0; j < socot; j++) { if(KiemTraPhanTuCucDai(a, sodong, socot, i, j) == 1) { printf("\n%.3f", a[i][j]); dem++; } } } printf("\nSo phan tu cuc dai = %d", dem); } int main() { float a[MAX][MAX]; int dong, cot; NhapMang(a, dong, cot); XuatMang(a, dong, cot); DemSoPhanTuCucDai(a, dong, cot); getch(); return 0; }