先排序,再按要求输出即可。
#include <stdio.h>
#include <stdlib.h>//使用qsort()需要调用的头文件
#include <string.h>
int cmp(const void *a,const void *b)
{
return strcmp((char *)a,(char *)b);
}
char filenames[105][65];
int main()
{
/*
freopen("400.in","r",stdin);
freopen("400.out","w",stdout);
//*/
int max_len,max_col,r,n;
while(scanf("%d",&n)!=EOF)
{
max_len=0;
for(int cas=0;cas<n;cas++)
{
scanf("%s",filenames[cas]);
if(strlen(filenames[cas])>max_len)
max_len=strlen(filenames[cas]);
}
qsort(filenames,n,65*sizeof(char),cmp);
max_col=62/(max_len+2);
r=(n-1)/max_col+1;//这里要取上届值
for(int i=0;i<60;i++)
printf("-");
printf("\n");
for(int i=0;i<r;i++)
{
for(int j=0;j<max_col && j*r+i<n;j++)
{
printf("%s",filenames[j*r+i]);
for(int u=0;u<max_len-strlen(filenames[j*r+i]);u++)
printf(" ");
if(j!=max_col-1)
printf(" ");
}
printf("\n");
}
}
return 0;
}
本文介绍了一个C语言程序,该程序通过使用qsort()函数对文件名进行排序,并以特定格式输出到屏幕上。文章重点讲解了如何计算每列的最大长度及如何布局输出格式。
1009

被折叠的 条评论
为什么被折叠?



