http://ac.jobdu.com/problem.php?pid=1464
#include <stdio.h>
#include <string.h>
char str[100];
char a[100][100];
int main()
{
int i,j,n1,n2,n3,k;
while (scanf("%s",str)!=EOF)
{
int l=strlen(str);
n1=(l+2)/3;
n3=n1;
n2=(l+2)-2*n1;
for (i=0;i<n1;i++) //获得二位矩阵,记得每行结尾结束符
{
for (j=0;j<n2;j++)
{
a[i][j]=' ';
}
a[i][n2]='\0';
}
i=0;
j=0;
k=0;
while (i<n1) //二维数组第一竖列赋值(u的左边一列)
{
a[i++][j]=str[k++];
}
i--;
j++;
while (j<n2) //u的横排
{
a[i][j++]=str[k++];
}
i--;
j--;
while (i>=0) //u的第二列
{
a[i--][j]=str[k++];
}
for (i=0;i<n1;i++)
{
printf("%s\n",a[i]);
}
}
return 0;
}