对于给定的整数矩阵A[5,5],设计算法查找出所有的鞍点。
提示:鞍点的特点:列上最小,行上最大。
输入格式:
输入5行5列整数,同行数据间以空格为间隔。
输出格式:
在一行中以以下格式输出矩阵中的所有鞍点,每个鞍点的显示格式为:
[<鞍点的行坐标>,<鞍点的列坐标>,<鞍点的值>]
输入样例:
11 3 5 6 9
12 4 7 8 10
10 5 6 9 11
8 6 4 7 8
15 10 11 20 25
结尾无空行
输出样例:
[3,0,8][3,4,8]
结尾无空行
#include <stdio.h>
int main()
{ int i,j,min,max,m=5,n=5,found=0;
int a[5][5],h[5],l[5];
for(i=0; i<m; i++)
for(j=0; j<n; j++)
scanf("%d",&a[i][j]);
for(i=0; i<m; i++)
{ h[i]=a[i][0];
for(j=1; j<n; j++)
if(a[i][j]>h[i])
h[i]=a[i][j];
}//找出每行最大值
for(j=0; j<n; j++)
{ l[j]=a[0][j];
for(i=1; i<m; i++)
if(a[i][j]<l[j])
l[j]=a[i][j];
}//找出每列最小值
for(i=0; i<m; i++)
{ for(j=0; j<n; j++)
if(l[j]==h[i])
{printf("[%d,%d,%d]",i,j,a[i][j]);
found=1;
}
}//进行比较,若行最小与列最大相等,则输出
if(!found)printf("没有鞍点");
}
本回答被提问者采纳