求 “鞍点”
在 Xcode 上用 C语言实现的:
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
// 求鞍点
int array[3][3] = {0};
//生成数组元素
for ( int i = 0; i < 3; i++ )
{
for ( int j = 0; j < 3; j++ )
{
array[i][j] = arc4random() % 30;
printf( "%2d\t", array[i][j] );
}
printf( "\n" );
}
int max = 0, min = INT32_MAX;
int count = 0;//记录当前出现的鞍点的个数
for ( int i = 0; i < 3; i++ )
{
for ( int j = 0; j < 3; j++ )
{
max = array[i][j];//假设当前渠道的 i 行 j 列为最大值
BOOL isMax = YES;//然后开始找当前 i 行,看看给定的数是否真的为最大
for ( int column = 0; column < 3; column++ )
{
if ( array[i][column] > max )
{
isMax = NO;
break;
}
}
//用 isMax 控制循环
if ( !isMax )
{
continue;
}
min = array[i][j];//假定当前取到的 i 行 j 列维当前列中的最小值
BOOL isMin = YES;//然后查找本列,看看是否真的为最小值
for ( int row = 0; row < 3; row++ )
{
if ( array[row][j] < min )
{
isMin = NO;
break;
}
}
if ( !isMin )
{
continue;
}
count++;
printf ( "%d 行,%d 列,鞍点为: %d\n", i, j, array[i][j] );
}
}
if ( count == 0 )
{
printf ( "没有找到鞍点!\n" );
}
return 0;
}