其他分享
首页 > 其他分享> > 鞍点计算

鞍点计算

作者:互联网

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

Sample Input
3 3
1 2 3
4 5 6
7 8 9
Sample Output
Array[0][2]=3
Hint
Source

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int n,m,i,j,s,p,k,x,y,f,a[11][11],max,min;
    while(scanf("%d %d",&m,&n)!=EOF)
    {
        s=0;
        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];
            k=0;
            for(j=1; j<n; j++)
            {
                if(a[i][j]>max)
                {
                    max=a[i][j];
                    k=j;
                }
            }
            f=0;
            min=a[i][k];
            for(p=0; p<m; p++)
            {
                if(a[p][k]<min)
                {
                    f=1;
                    break;
                }
            }
            if(f==0)
            {
                s++;
                x=i;
                y=k;
            }
        }
        if(s==0)printf("None\n");
        else printf("Array[%d][%d]=%d\n",x,y,a[x][y]);
    }
    return 0;
}

标签:计算,min,int,数组,Input,Array,鞍点
来源: https://blog.csdn.net/weixin_43886377/article/details/100796639