C++寻找二维数组的鞍点

寻找二维数组的鞍点,该点为该行最大值该列的最小值。

#include 
#define N 4

using namespace std;
//寻找二维数组的鞍点,该行最大、该列最小
int main() {
    //可修改数组手动输入
    int a[N][N] = {{1,4,2,3},
                    {1,3,1,1},
                    {2,5,7,1},
                    {1,6,2,1}};
    int row,col;//记录行和列
    int max,min;//记录最大最小值
    int flag = 0;
    for(int i=0;i<N;i++){
        max = a[i][0];
        for(int j=0;j<N;j++){
            if(max < a[i][j]){
                max = a[i][j];
                col = j;
            }
        }
        min = a[i][col];
        for(int k=0;k<N;k++){
            if(min > a[k][col]){
                min = a[k][col];
                row = k;
            }
        }
        if(max == min && i == row){//如果最大元素和最小元素相同,而且都在第i行
            flag = 1;
        }
        
    }
    if(flag){
        cout<<"该鞍点为第"<<row+1<<"行,第"<<col+1<<"列:"<<a[row][col]<<endl;
    }else{
        cout<<"该二维数组没有鞍点!"<<endl;
    }
    return 0;
}

考研打卡,就酱,加油!

你可能感兴趣的:(笔记,c++,矩阵,开发语言)