鞍点计算

Problem Description

找出具有m行n列二维数组Array的“鞍点”,即该位置上的元素在该行上最大,在该列上最小,其中1<=m,n<=10。同一行和同一列没有相同的数。

Input

输入数据有多行,第一行有两个数m和n,下面有m行,每行有n个数。

Output

按下列格式输出鞍点:

Array[i][j]=x

其中,x代表鞍点,i和j为鞍点所在的数组行和列下标,我们规定数组下标从0开始。

一个二维数组并不一定存在鞍点,此时请输出None。

我们保证不会出现两个鞍点的情况,比如:

3 3
1 2 3
1 2 3
3 6 8

Example Input

3 3
1 2 3
4 5 6
7 8 9

Example Output

Array[0][2]=3

#include <stdio.h>
int main()
{
    int m,n,max,min,i,j,k,y,flag,a[11][11];
    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++)
    {
        max=a[i][0];
        flag=1;
        for(j=1;j<n;j++)
        {
            if(a[i][j]>max)
            {
                max=a[i][j];
                y=j;
            }
        }
        for(k=0;k<m;k++)
        {
            if(max>a[k][y])
            {
                flag=0;
                break;
            }
        }
        if(flag==1)
        {
            printf("Array[%d][%d]=%d\n",i,y,max);
            break;
        }

    }
    if(flag==0)
            printf("None\n");
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_41530516/article/details/78911868