找出一个二维数组中的鞍点

即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。

#include<stdio.h>
#include<math.h>
#include<string.h>


int main()
{
    int i,j,n;
    int a[100][100];
    scanf("%d",&n);
    for(i=0;i<n;i++)
    for(j=0;j<n;j++)
    scanf("%d",&a[i][j]);
    int max=-1,x,y,flag;
    for(i=0;i<n;i++)
    {
        flag=0;
        for(j=0;j<n;j++)
        {
            if(max<a[i][j]) {max=a[i][j];x=i;y=j;}
        }
        for(j=0;j<n;j++)
        {
            if(a[x][y]>a[j][y]) flag=1;
        }
        if(flag==0) {printf("%d,%d\n",x,y);break;}
    }
    return 0;
}


猜你喜欢

转载自blog.csdn.net/qq_39350434/article/details/80645250
今日推荐