集团品牌网站建设,西昌手机网站制作,重庆商城网站开发,平台流量排名如果在一矩阵中元素A[i][j]满足A[i][j]为第i行的最小值#xff0c;第j行的最大值#xff0c;则称这个元素为这个矩阵的马鞍点#xff0c;求m*n矩阵所有的马鞍点。若需求一个矩阵的所有马鞍点#xff0c;其实只需将矩阵的每行的最小值与每列的最大值分别求出存在相应的数组中… 如果在一矩阵中元素A[i][j]满足A[i][j]为第i行的最小值第j行的最大值则称这个元素为这个矩阵的马鞍点求m*n矩阵所有的马鞍点。若需求一个矩阵的所有马鞍点其实只需将矩阵的每行的最小值与每列的最大值分别求出存在相应的数组中在遍历一遍原矩阵确定元素是否满足条件即可。
#include cstdio
#include iostream
#include cstring
#include algorithm
using namespace std;
int arr[20][20];
int hang[20];
int lie[20];
int main()
{int m,n;while(~printf(请输入m和n的值:)){scanf(%d %d,m,n);memset(arr,0,sizeof(arr));memset(hang,0,sizeof(hang));memset(lie,0,sizeof(lie));printf(请输入%d行%d列的矩阵:\n,m,n);for(int i1;im;i){int minl1e97;for(int j1;jn;j){scanf(%d,arr[i][j]);minlmin(minl,arr[i][j]);}hang[i]minl;}for(int j1;jn;j){int maxl-(1e97);for(int i1;im;i){maxlmax(maxl,arr[i][j]);}lie[j]maxl;}bool jufalse;printf(该%d行%d列的矩阵的马鞍点为\n,m,n);for(int i1;im;i){for(int j1;jn;j){if(arr[i][j]hang[i]arr[i][j]lie[j]){printf(第%d行第%d列的元素:arr[%d][%d]%d\n,i,j,i,j,arr[i][j]);jutrue;}}}if(!ju)printf(该%d行%d列的矩阵没有马鞍.\n);}
}下面为一组测试数据