马鞍点

马鞍点:在二维数组中,是否存在一个元素的值是它所在行中最大,在它所在列中最小,如果有则输出。

#include<stdio.h>
int main()
{
    int a[4][4]={{13,15,55,23},{22,32,65,21},{33,23,44,15},{37,32,88,37}};
    int min=0,max=0,i=0,j=0,x=0;
    for(i=0;i<4;i++)
    {
        max=0;
        for(j=0;j<4;j++) 
        {
            if(a[i][max]<a[i][j])
            {
                max=j;
            }
        }
        min=0;
        for(x=0;x<4;x++)
        {
            if(a[min][max]>a[x][max])
            {
                min=x;
            }
        }
        if(i==min)
        {
            printf("%d
",a[min][max]);
        }
    }
    return 0;
}

总结:方法一(上面的代码):大循环控制行,先在每行中找到最大的数,记下它的纵坐标,然后在记下的纵坐标的那一列中找到最小的元素,判断坐标是否相同,如果相同则输出。

  方法二:建立数组,通过循环,将每行最大的数的下标存起来,再将每列最小的数的下标存起来,最后在数组中找是否有对上的。

原文地址:https://www.cnblogs.com/TX980502/p/6516746.html