c++巧求马鞍数

问题描述

求一个n×n(n<=10)矩阵中的马鞍数(马鞍数的特点是在它所在的行,它的值最小。在它所在的列,它的值最大)

矩阵中的数字都不超过100的非负整数。

输入格式

第一行一个整数n

接下来是一个n*n的矩阵,用空格作为间隔

输出格式

一行三个空格间隔的整数,表示马鞍数所在的位置坐标和对应的数值

样例输入1

3

1 4 8

6 7 9

5 1 3

样例输出1

2 1 6

样例输入2

5

9 6 2 11 6

14 14 6 8 10

7 7 5 9 3

3 7 4 9 8

3 6 4 5 4

代码

#include

using namespace std;

int a[11][11];

int main()

{

int n;

cin>>n;

for(int i = 1; i <= n; i++)

for(int j = 1; j <= n; j++)

cin>>a[i][j];

for(int i = 1; i <= n; i++) // 处理每一行,i为行号,这里行号从1开始

{

int min = a[i][1];

for(int j = 1; j <= n; j++)

{

if(a[i][j] < min)

min = a[i][j]; //找出最小值

}

for(int j = 1; j <= n; j++)

{

if(a[i][j] == min) //最小值可能不止一个,所以出现一个最小值就检查它是否是该列的最大元素

{

int flag = 1; //flag用来记录该值是否是该列的最大值

for(int k = 1; k <=n; k++)

{

if(a[k][j] > min)

flag = 0; //如果该列有数比该数大,则说明该数不是该列的最小值,flag置0

}

if(flag == 1)

cout<

}

}

}

}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部