问题:一行上最大的点,一列上最小的点
首先:数组中找最大点 —> 打擂台算法
1. 现在一行上打擂台找出最大,再在最大的列上打擂台找出最小 —> 得找个变量记录擂主的位置
2. 首位擂主的初始化问题 —> 在比武之前 (Bug1:同时给首擂主定位置,不然没有更换擂主则擂主无坐标)
3. 第一场打完了紧接着打第二场 –>
4. 判断两场擂主是否相同 , 输出鞍点
5. 查找,若没有问题,怎么告知:定一个count,找到则count++,若最后count==0,则警告
#include <stdio.h>
int main()
{
int i, j, k, row1 = 0, culum1 = 0, row2 = 0, culum2 = 0, max, min, count = 0;
int b[5][4] = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 };
for ( i = 0; i < 5; i++)
{
max = b[i][0];
row1 = i;
culum1 = 0;
for ( j = 0; j < 4; j++)
{
if (b[i][j]>max)
{
max = b[i][j];
row1 = i;
culum1 = j;
}
}
min = b[0][culum1];
row2 = 0;
culum2 = culum1;
for ( k = 0; k < 5; k++)
{
if (b[k][culum1]<min)
{
min = b[k][culum1];
row2 = k;
culum2 = culum1;
}
}
if ((row1 == row2) && (culum1 == culum2) )
{
count++;
printf("存在鞍点:b[%d][%d]\n", row1, culum1);
}
}
if (count == 0)
printf("不存在鞍点。\n");
return 0;
}