求矩阵的局部极大值

错误代码,不知道怎么运用中间值进行if……else判断
#include<stdio.h> int main() { int m,n,a[20][20],i,j; scanf("%d %d",&m,&n); for(i=0;i<m;i++) for(j=0;j<n;j++) scanf("%d",&a[i][j]); for(i=0;i<m;i++) {for(j=0;j<n;j++) { if(a[i][j]>a[i+1][j]&&a[i][j]>a[i-1][j]&&a[i][j]>a[i][j+1]&&a[i][j]>a[i][j-1]) printf("%d %d %d",a[i][j],i+1,j+1); else printf("None %d %d",m,n);} return 0; }
正确代码,引入a[20][20]=0进行判断标准
#include<stdio.h> int main() { int m,n,a[20][20],i,j; a[20][20]=0; scanf("%d %d",&m,&n); for(i=0;i<m;i++) for(j=0;j<n;j++) scanf("%d",&a[i][j]); for(i=1;i<m-1;i++) {for(j=1;j<n-1;j++) { if(a[i][j]>a[i+1][j]&&a[i][j]>a[i-1][j]&&a[i][j]>a[i][j+1]&&a[i][j]>a[i][j-1]) {printf("%d %d %d\n",a[i][j],i+1,j+1); a[20][20]=1;} }} if(a[20][20]==0) printf("None %d %d",m,n); return 0; }

浙公网安备 33010602011771号