概述
题目大意:
给你给定个数的文件名,按字典序排序之后输出,如果输出是在最后一列,输出长度为输入长度的最大长度,否则输出长度为输入长度的最大长度+2。输出时一行最多只能输出60个字符。按列输出,第一列输完之后输第二列,一直到最后一列。
思路:输入存2维数组,用qsort按字典序排序度找出输入的最长字符串长度,计算每行最多能输入多少个字符串即输出时每行会有几列,再计算要输出多少行。最后按输出格式输出就可以了。
总结:输出格式有点麻烦,别的就没什么了!
代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <cstdlib>
using namespace std;
char str[110][70];
int cmp(const void *_a, const void *_b)
{
char *a = (char *)_a;
char *b = (char *)_b;
return strcmp(a, b);
}
int main()
{
int t;
while (scanf("%d", &t) != EOF)
{
memset(str, 0, sizeof(str));
int len = 0;
for (int i = 0; i < t; i++)
{
scanf("%s", str[i]);
if (len < strlen(str[i]))
len = strlen(str[i]);
}
for (int i = 0; i < t; i++)
{
for (int j = 0; j < len; j++)
{
if (str[i][j] == '