UVA400 WA ,多谢

UVA400 WA ,谢谢
题目地址:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=6&problem=341&mosmsg=Submission+received+with+ID+12387401
#include <cstdio>
#include <cstring>
#include <cstdlib>
const int maxsize=1000;
char sorted_word[maxsize][maxsize][70];
char word[maxsize][70];
int cmp(const void *a, const void *b)
{
return strcmp((char *)a,(char *)b);
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
int i;
int len=0;
for(i=0;i<n;++i)
{
scanf("%s",word[i]);
if((int)strlen(word[i])>len)
len=strlen(word[i]);
}
qsort(word,n,sizeof(word[0]),cmp);
int column=(60-len)/(len+2)+1;//计算一共有多少列
int array=n/column*column==n?n/column:n/column+1;//算一共有多少行
int j,l;
i=0;
for(j=0;j<column;++j)
{
for(l=0;l<array;++l)
{
if(i==n)
goto loop;
strcpy(sorted_word[l][j],word[i++]);
}
}
loop:
i=0;
int k;
for(k=0;k<60;++k)
printf("-");
printf("\n");
for(j=0;j<array;++j)
{
for(l=0;l<column;++l)
{
if(i==n)goto loop1;
printf("%s",sorted_word[j][l]);
for(k=strlen(sorted_word[j][l]);k<len;++k)
printf(" ");
if(l!=column-1)
printf("  ");
else
printf("\n");
++i;
}
}
loop1:
if(l!=column)
printf("\n");
}
return 0;
}

------解决方案--------------------
最后一行如果不满的话还需要输出"  "么?