求二维数组中的鞍点【数组】
2017-10-28 21:29
134 查看
题目描述
如果矩阵A中存在这样的一个元素A[i,j]满足条件:A[i,j]是第i行中值最小的元素,且又是第j列中值最大的元素,则称之为该矩阵的一个马鞍点。请编程计算出m*n的矩阵A的所有马鞍点。
输入
输入m,n
然后输入数组中的每个元素
输出
输出m*n的矩阵A的所有马鞍点
样例输入
3 3
1 7 3
5 4 6
17 18 9
样例输出
9
如果矩阵A中存在这样的一个元素A[i,j]满足条件:A[i,j]是第i行中值最小的元素,且又是第j列中值最大的元素,则称之为该矩阵的一个马鞍点。请编程计算出m*n的矩阵A的所有马鞍点。
输入
输入m,n
然后输入数组中的每个元素
输出
输出m*n的矩阵A的所有马鞍点
样例输入
3 3
1 7 3
5 4 6
17 18 9
样例输出
9
#include <stdio.h> #include <stdlib.h> int main() { int m,n,i,j; scanf("%d%d",&m,&n); // 输入数组大小 int a[m+1][n+1],p,f=1; //定义数组变量 for(i=1;i<=m;i++) //循环输入数组 for(j=1;j<=n;j++) scanf("%d",&a[i][j]); for(i=1;i<=m;i++) //每一行上的元素 { for(j=1;j<=n;j++) { if(a[i][f]>a[i][j]) f=j;//找出每一行元素的最小值 } for(p=1;p<=m;p++) //循环判断每一行元素的最小值是否是它所在列的最大值 if(a[i][f]<a[p][f]) break; if(p==m+1) printf("%d\n",a[i][f]);//如果是则输出 f=1; } return 0; }
相关文章推荐
- Problem B: 求二维数组中的鞍点【数组】
- 求二维数组中的鞍点【数组】
- Problem G: 求二维数组中的鞍点【数组】
- 两道关于二维数组的题, 鞍点,三维数组的深度
- 求二维数组中的鞍点【数组】
- 求二维数组中的鞍点【数组】
- 求二维数组中的鞍点【数组】
- Java 一维数组,二维数组的定义声明 以及一维数组的 冒泡排序 以及二维数组的鞍点
- acm--二维数组中的鞍点【数组】
- 第16周-求二维数组中的鞍点【数组】
- 指针数组和字符类型的二维数组在处理字符串时的区别
- 二维数组(循环数组——魔方阵)、数组指针与指针数组、const
- 把一维数组合并成二维数组
- 调用函数求二维数组中元素和,并统计数组中奇数的个数
- 实验 8 数组2 输出一张九九乘法口诀表。要求必须将乘积放入一个二维数组中,再输出该数组
- 返回一个二维数组中最大联通子数组的和
- 【数组】将给定字符串str="1,2,3!4,5,6,0!7,8,9"存入二维数组中。(使用 split(String regex) ) int[][] a
- 动态分配二维数组,且能如数组一样访问
- 数组3——返回二维数组中最大联通子数组的和
- C++中动态定义一维数组,二维数组,三维数组的方法