求二维数组中的鞍点【数组】

来源:互联网 发布:唐100最新销量数据 编辑:程序博客网 时间:2024/05/24 15:37

Description

如果矩阵A中存在这样的一个元素A[i,j]满足条件:A[i,j]是第i行中值最小的元素,且又是第j列中值最大的元素,则称之为该矩阵的一个马鞍点。请编程计算出m*n的矩阵A的所有马鞍点。

Input

输入m,n

然后输入数组中的每个元素

Output

输出m*n的矩阵A的所有马鞍点

Sample Input

3 31  7  35  4  617 18 9

Sample Output

9

代码:

#include <stdio.h>#include <stdlib.h>int main(){    int m,n,a[30][30],i,j,k,l,max,min,x,y;    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++)    {        min=a[i][0];y=0;        for(k=1;k<3;k++)            if(min>a[i][k])            {                y=k;min=a[i][k];            }         max=a[i][y];x=i;        for(k=0;k<5;k++)            if(max<a[k][y])            {                x=k;max=a[k][y];            }     if(i==x)        printf("%d\n",a[x][y]);    }    return 0;}


0 0