博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

c语言——鞍点

Posted on 2018-11-30 22:26  薄辉'静谧  阅读(1780)  评论(0编辑  收藏  举报

描述

 

找出具有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>

int a[50][50];

int main(){
    int n,m;
    scanf("%d %d",&n,&m);
    int i,j,k;
    for(i=0;i<n;i++)
        for(j=0;j<m;j++)
            scanf("%d",&a[i][j]);
    int max,x,flag=0;
    for(i=0;i<n;i++){
        max=a[i][0];
        x=0;
        for(j=0;j<m;j++){
            if(max<a[i][j]){
                max=a[i][j];
                x=j;
            }    
        }
        for(k=0;k<n;k++){
            if(max>a[k][x]){
                flag=1;
                break;
            }
        }
        if(!flag){
            printf("Array[%d][%d]=%d\n",i,x,max);
            break;
        }
    }
    if(flag) 
        printf("None\n");
}
View Code