#include <iostream>
using namespace std;
void search(int a[][5] , int n){ //一个5行5列的矩阵
int max[2][5]; //分别表示前一个最大的数和后一个最大的数
int index[2];
index[0] = index[1] = 0; //用来记录两个最大数的索引
for(int i=0;i<5;i++){
//对每一列都要找那个数
max[0][i] = a[0][i];
max[1][i] = a[0][i];
index[0] = index[1] = 0;
for(int j=1;j<n;j++){
//遍历每一行
//max[0]记录次大的数
//max[1]记录最大的数
if(a[j][i] > max[0][i] && a[j][i] > max[1][i]){
if(index[1] != 0){ //这个时候要先把max[1]的值给max[0]
max[0][i] = max[1][i];
index[0] = index[1];
}
max[1][i] = a[j][i];
index[1] = j;
}
else if(a[j][i] > max[0][i]){
//这个时候要把max[1]的值给max[0]
max[0][i] = a[j][i];
index[0] = j;
}
}
//接下来判断哪个行号大,大的在下面
if(index[0] > index[1]){ //交换max的值
int temp = max[0][i];
max[0][i] = max[1][i];
max[1][i] = temp;
}
}
for(int i=0;i<5;i++)
cout<<max[0][i]<<" ";
cout<<endl;
for(int i=0;i<5;i++)
cout<<max[1][i]<<" ";
cout<<endl;
}
int main(){
int a[4][5];
for(int i=0;i<4;i++)
for(int j=0;j<5;j++)
cin>>a[i][j];
search(a,4);
}
运行结果: