(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;

}
 
  

 

 

你可能感兴趣的:(C语言)