Đề bài:
Đếm số lượng phần tử cực đại trong ma trận các số thực. Một phần tử được gọi là cực đại khi nó lớn hơn các phần tử xung quanh
Em đang thắc mắc không biết làm sao để kiểm tra mấy cái số Ở BIÊN CÓ CỰC ĐẠI HAY KHÔNG, em nghĩ nếu xét từng ô thì nó hơi lâu ạ :D. Mọi người chỉnh code giúp em ạ. Em cảm ơn nhiều.
Cái này là kiểm tra mấy cái số không phải ở biên có phải cực đại không nên mng không cần quan tâm cho rắc rối ạ
if (a[i][j]>a[i][j+1]&&a[i][j]>a[i][j-1]&&a[i][j]>a[i-1][j]&&a[i][j]>a[i-1][j-1]&&a[i][j]>a[i-1][j+1]&&a[i][j]>a[i+1][j]&&a[i][j]>a[i+1][j+1]&&a[i][j]>a[i][j-1])
Hình minh họa.
#include <iostream>
using namespace std;
int main () {
int row,col;
int a[101][101];
cout << "\n nhap so hang: ";
cin >> row;
cout << "\n nhap so cot: ";
cin >> col;
for (int i = 0; i<row;i++) {
for (int j=0;j<col;j++) {
cout << "\n a["<<i<<"]["<<j<<"]= ";
cin >> a[i][j];
}
}
for ( int i = 0; i<row;i++) {
for ( int j = 0; j<col; j++) {
cout << a[i][j] << " ";
}
cout << endl;
}
cout << endl << endl << endl;
for ( int i = 0; i<row;i++) {
for ( int j = 0; j<col; j++) {
if (a[i][j]>a[i][j+1]&&a[i][j]>a[i][j-1]&&a[i][j]>a[i-1][j]&&a[i][j]>a[i-1][j-1]&&a[i][j]>a[i-1][j+1]&&a[i][j]>a[i+1][j]&&a[i][j]>a[i+1][j+1]&&a[i][j]>a[i][j-1])
cout << a[i][j] << " ";
}
}
return 0;
}