求二维整型数组的“最大点”。 二维数组的“最大点"定义为:某个数是所在行的最大值,并且是所在列的最大值。注意:一个数组可能有多个最大点”。输入: ()n行和m列(n, m<=10),(2)n*m个整数, 数据以空格隔开:输出:每行输出一个“最大点”的值及其行下标、列下标(行列都从1开始计数),空格分隔。
样例输入:3 4
8 60 7 100
10 498 12 49
-71 132 4 85
样例输出:
100 1 4
498 2 2
#include <stdio.h>
int main()
{
int n,m;
scanf("%d %d",&n,&m);
int a[11][11];
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
scanf("%d",&a[i][j]);
}
}
//先获取每一列最大值的行坐标
int col[11];
for(int j=0;j<m;j++){
int maxi = 0;
for(int i=0;i<n;i++){
if(a[i][j]>a[maxi][j]){
maxi = i;
}
}
col[j]=maxi;
}
for(int i=0;i<n;i++){
//获取当前行最大值的列坐标
int maxj = 0;
for(int j=0;j<m;j++){
if(a[i][j] > a[i][maxj]){
maxj = j;
}
}
if(i==col[maxj]){
printf("%d %d %d\n",a[i][maxj],i+1,maxj+1);
}
}
return 0;
}