#include
int main()
{
int a[5][5] = {
{11,3,5,6,9},
{12,4,7,8,10},
{10,5,6,9,11},
{8,6,4,7,2},
{15,10,11,20,25}};
int b[5][5];
int m,n,c,d;
int x = 0,y = 0,r,e;
int zuihou=0;
//依次输入矩阵的元素
/*for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
scanf("%d", &a[i][j]);
}
}
*/
//找出每一行里的最大值的坐标
for(m=0;m<5;m++)
{
int max=a[m][0];
y=0;
for(n=0;n<5;n++)
{
//获取每行的最大值
if(a[m][n]>max)
{
max=a[m][n];
y=n;
}
}
b[m][y]=1; //找到每行的最大值,并将对应在b数组的标识位处置为1,表示这位是最大值
}
//找出每一列里的最小值的坐标
int min = a[0][0];
for(c = 0; c < 5; c++)
{
for(d = 0; d < 5; d++)
{
if(a[d][c] < min)
{
min = a[d][c];
r = d;
e = c;
}
}
if(b[r][e] == 1)//如果b数组的标识位为1表示这个位置的数位最大值,且现在又多了一个最小值的条件
{
printf("x:%d,y:%d,value:%d\n", r, e, a[r][e]);
++zuihou;
}
min = a[0][c+1];
r = 0;
e = c + 1;
}
//测试有没有相同的点,如果有,即为鞍点,并输出
if(zuihou==0)
printf("not found");
return 0;
}
我用的c语言,#include
printf("")就是输出cout,%d表示数字类型为int,scanf就是输入cin。思路差不多就这样。