#include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> #include<string> using namespace std; string shz[100+5]; int a; void display(){ for(int i=0;i<a;i++)cout<<shz[i]<<endl; } int main(){ while(cin>>a){ int m=0; for(int i=0;i<a;i++){ cin>>shz[i]; m=max(m,int(shz[i].length())); } /* int jud=1; while(jud){ jud=0; for(int i=0;i<a-1;i++){ if(strcmp(shz[i],shz[i+1]>0){ jud=1; char s[60]; sscanf(shz[i],"%s",s); sscanf(shz[i+1],"%s",shz[i]); sscanf(s,"%s",shz[i+1]); } } } */ sort(shz,shz+a);//注意sort对string[] 管用 // display(); int col=(60-m)/(m+2)+1,row=(a-1)/col+1;//计算行列数(n-1)/x; // printf("test m,col %d %d\n",m,col); for(int i=0;i<60;i++)printf("-"); cout<<endl; for(int i=0;i<row;i++){ int j=i; while(j<a){ cout<<shz[j]; int x=m+2-shz[j].length(); while(x--)printf(" "); j=j+row; } printf("\n"); } } return 0; } //注意memset初始化用法最后中间才是个数,最后为初始化的值
Unix is(Uva 400)
最新推荐文章于 2021-03-16 17:04:45 发布