任务描述
题目描述:找出具有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
下面上代码
#includeint main(){int m,n;//m行n列的矩阵 int Array[10][10];//定义一个矩阵 int i,j,b=0,c=0;scanf("%d %d",&m,&n);//输入行和列数 for(i=0;i<m;i++)//输入矩阵 {for(j=0;j<n;j++){scanf("%d",&Array[i][j]);}}int max=0;//用于比较每行最大的值 int min=0;//用于比较每行中最小的值 for(i=0;i<m;i++){max=Array[i][0];for(j=0;jmax) { max=Array[i][j]; b=j;//将最大值的列数赋值给b}}min=Array[0][b];for(int k=0;k<m;k++)//找出每行最小值 {if(Array[k][b]<min){min=Array[k][b];c=k;//将最小的行数赋值给c }}if(min==max)//判断该点是否为鞍点 {printf("Array[%d][%d]=%d",c,b,Array[c][b]);break;//if ture,输出鞍点 }}if(min!=max)//根据题目要求,没有鞍点输出None {printf("None");}return 0;}
输入:
3 3
1 4 3
4 5 6
7 8 9
输出样例:
有天赋的人不一定成功,但努力的人一定会成功。2023加油!