2019/2/12 11:37 输出正确
主要在于理解题意,排序和格式化输出部分并不难
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
const int maxcol = 60;
const int maxn = 100 + 5;
string filename[maxn];
void print(const string&s, int len, char extra)
{
cout << s;
for (int i = 0; i < len - s.length(); i++)
{
cout << extra;
}
}
int main()
{
int n;
int row, col;
cin >> n;
int M = 0;
for (int i = 0; i < n; i++)
{
cin >> filename[i];
M = max(M, (int)filename[i].length());
}
col = (60 - M) / (M + 2) + 1;
row = (n - 1) / col + 1;
sort(filename, filename + n);
print(" ", 60, '-');
cout << endl;
int idx = 0;
for (int r = 0; r < row; r++) {
for (int c = 0; c < col; c++){
idx = c*row + r;
if(idx<n) print(filename[idx], c == col - 1 ? M : M + 2, ' ');
}
cout << endl;
}
return 0;
}