#include<iostream>
using namespace std;
int main ()
{
int n;
while(cin>>n)
{
while(n--)
{
int a[4][5],b[2][5],c[4][5];
int jishu,num1=0,num2=0,fff,duihuan;
int i,j,max,k;
for(i=0; i<4; i++) // 输入四行五列的数据
{
for(j=0; j<5; j++)
{
cin>>a[i][j];
c[i][j]=a[i][j];
}
}
for(j=0; j<5; j++)
{
for(i=0; i<4; i++) //每列从大到小排序
{
max=a[i][j];
for(k=i; k<4; k++)
{
if(max<a[k][j])
{
max=a[k][j];
a[k][j]=a[i][j];
a[i][j]=max;
}
}
}
}
for(j=0; j<5; j++) // b[][]为每列的最大的两个数
{
for(i=0; i<2; i++)
{
b[i][j]=a[i][j];
}
}
fff=0;
while(fff!=5)
{
// 判断最大的两个数的行数
for(i=0; i<4; i++)
{
if(c[i][fff]==b[0][fff])
{
num1=i;
break;
}
}
for(i=0; i<4; i++)
{
if(c[i][fff]==b[1][fff])
{
num2=i;
break;
}
}
if(num2<num1) // 行小的在前
{
duihuan=b[0][fff];
b[0][fff]=b[1][fff];
b[1][fff]=duihuan;
}
fff++;
}
for(i=0; i<2; i++) // 输出每列最大的两个数
{
for(j=0; j<5; j++)
{
if(j==4) cout<<b[i][j]<<' '<<endl;
else cout<<b[i][j]<<' ';
}
}
}
}
return 0;
}
/**************************************************************
Problem: 1200
User: cust123
Language: C++
Result: Accepted
Time:30 ms
Memory:1520 kb
****************************************************************/
题目1200:最大的两个数

最新推荐文章于 2018-10-01 18:12:00 发布
