求二维数组的鞍点。
鞍点:该一行的最大数同时又是该列的最小数。
#include<stdio.h>
int main(){
int n,m;
printf("二维数组的行数n:");scanf("%d",&n);
printf("二维数组的列数m:");scanf("%d",&m);
int a[n][m];
int max,min;
int max_j,min_i;
int i,j,k;
int c=0;
puts("请输入二维数组:");
for(i=0;i<n;i++){
for(j=0;j<m;j++){
scanf("%d",&a[i][j]);
}
}
puts("二维数组为:");
for(i=0;i<n;i++){
for(j=0;j<m;j++){
printf("%d",a[i][j]);
}
printf("\n");
}
for (int i=0;i<n;++i){
max_j= 0;
min_i= 0;
max=a[i][0];
for (int j=1;j<m;++j) {
if (max<a[i][j]) {
max=a[i][j];
max_j=j;
}
}
min=a[0][max_j];
for (int k=0;k<n;k++){
if (min>a[k][max_j]) {
min=a[k][max_j];
min_i=k;
}
}
if (min==max) {
printf("鞍点为a[%d][%d]=%d\n",min_i,max_j,min);
}
else {
c++;
}
}
if (c==n){
printf("二维数组arr无鞍点\n");
}
return 0;
}