#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;
int main()
{
char s[100];
char a[40][40];
scanf("%s",s);
int i,j;
int n1,n2,n3;
int len=strlen(s);
n1=(len+2)/3;
n3=n1;
n2=(len+2-n1-n3);
for(i=1;i<=n1;i++)
{
for(j=1;j<=n2;j++)
a[i][j]=' ';
}
int q=0;
for(i=1;i<=n1;i++)
{
a[i][1]=s[q++];
}
for(i=2;i<=n2;i++)
{
a[n1][i]=s[q++];
}
for(i=n3-1;i>=1;i--)
{
a[i][n2]=s[q++];
}
for(i=1;i<=n1;i++)
{
for(j=1;j<=n2;j++)
printf("%c",a[i][j]);
printf("\n");
}
return 0;
}
先找出规律,n1,n2,n3
再初始化二维数组
依次把字符存储进去
再输出
当然也可以一行一行直接输出,但下标要经过计算
还有就是这里的len没有减一
所以后来的循环几乎都是从初始值1开始的