马鞍点:在二维数组中,是否存在一个元素的值是它所在行中最大,在它所在列中最小,如果有则输出。
#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; }
总结:方法一(上面的代码):大循环控制行,先在每行中找到最大的数,记下它的纵坐标,然后在记下的纵坐标的那一列中找到最小的元素,判断坐标是否相同,如果相同则输出。
方法二:建立数组,通过循环,将每行最大的数的下标存起来,再将每列最小的数的下标存起来,最后在数组中找是否有对上的。