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