凡科网站制作教程下载百度卫星导航
任务描述
题目描述:找出具有m
行n
列二维数组Array
的“鞍点”,即该位置上的元素在该行上最大,在该列上最小,其中1<=m,n<=10
。
相关知识(略)
编程要求
输入
输入数据有多行,第一行有两个数m
和n
,下面有m
行,每行有n
个数。
输出
按下列格式输出鞍点: Array[i][j]=x
其中x
代表鞍点,i
和j
为鞍点所在的数组行和列下标,我们规定数组下标从0
开始。 一个二维数组并不一定存在鞍点,此时请输出None
我们保证不会出现两个鞍点的情况,比如: 3 3
1 2 3
1 2 3
3 6 8
测试说明
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
样例输入:
3 3
1 2 3
4 5 6
7 8 9
样例输出:
Array[0][2]=3
开始你的任务吧,祝你成功!
#define N 10
#include <stdio.h>
int Maxcol(int a[][N],int n,int row){int i,maxcol=0;for(i=1;i<n;i++)if (a[row][i]>a[row][maxcol]) maxcol=i;return maxcol;
}
int Minrow(int a[][N],int m,int col){int i,minrow=0;for(i=1;i<m;i++)if (a[i][col]<a[minrow][col]) minrow=i;return minrow;
}
int main(){int m,n,i,j;int maxcol,minrow;int a[N][N];scanf("%d%d",&m,&n);for(i=0;i<m;i++) for(j=0;j<n;j++)scanf("%d",&a[i][j]);for(i=0;i<m;i++){maxcol=Maxcol(a,n,i);minrow=Minrow(a,m,maxcol);if (i==minrow){printf("Array[%d][%d]=%d",i,maxcol,a[i][maxcol]);break;}}if(i>=m) printf("None");
}