(TOJ1481)C语言实验题——鞍点

描述

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

输入

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

输出

 

按下列格式输出鞍点:

Array[i][j]=x

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

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

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

3 3
1 2 3
1 2 3
3 6 8

样例输入

3 3
1 2 3
4 5 6
7 8 9

样例输出

Array[0][2]=3

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

int a[10][10];

void deal(int a[][10], int m, int n)
{
    int i,j,k,c,r,min,max;
    for(i=0; i<m; i++)
    {
        max=a[i][0];
        c=0;
        for(j=1; j<n; j++)
        {
          if(a[i][j]>max)
          {
              max=a[i][j];
              c=j;
          }
        }
        min=a[i][c];
        for(j=0; j<m; j++)
        {
            if(min>a[j][c])
            {
                break;
            }
        }
        if(j==m)
        {
            printf("Array[%d][%d]=%d\n",i,c,min);
            return;
        }
    }
    printf("None\n");
}

void solve()
{
    int m,n,i,j;
    scanf("%d %d",&m,&n);
    for(i=0; i<m; i++)
    {
        for(j=0; j<n; j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
    deal(a,m,n);
}


int main()
{
    solve();
//    getchar();
//    getchar();
    return 0;
}


 
原文地址:https://www.cnblogs.com/xueda120/p/3068655.html