#include <bits/stdc++.h> using namespace std; int main() { int arr[4][5]; for(int i =0;i<4;i++) for(int j =0;j<5;j++) cin>>arr[i][j]; //按列开始处理 for(int j=0;j<5;j++){ //求本列最小值,然后置为最小 int times=2; while(times--){ int nowMin = INT_MAX; int tarI,tarJ; for(int i = 0;i<4;i++) if(arr[i][j]<nowMin && arr[i][j]!=INT_MIN){ nowMin = arr[i][j]; tarI = i;tarJ=j; } //出循环后该元素置为最小 arr[tarI][tarJ]=INT_MIN; } } //输出该矩阵 int cot = 0; vector<int>v; int k=2; while(k--){ for(int j =0;j<5;j++) for(int i =0;i<4;i++) if(arr[i][j]!=INT_MIN){ v.push_back(arr[i][j]); arr[i][j] = INT_MIN; break; } } for(int i =0;i<v.size();i++){ cout<<v[i]<<" ";cot++; if(cot==5)cout<<endl; } } // 64 位输出请用 printf("%lld")
代码比较乱...水多加面,面多加水