#include<iostream>
#include<string.h>
using namespace std;
int main()
{
string s;
cin >> s;
int len, n1, n2, x = 0, y = 0, i = 0;
len = s.length();
n1 = (len + 2) / 3; n2 = len - n1 * 2 + 2;
char ans[n1][n2];
memset(ans, ' ', sizeof(ans));
while(x < n1 - 1)
ans[x++][0] = s[i++];
while(y < n2 - 1)
ans[n1-1][y++] = s[i++];
while(x >= 0)
ans[x--][n2-1] = s[i++];
for(int i = 0; i < n1; i++){
for(int j = 0; j < n2; j++){
printf("%c", ans[i][j]);
}
printf("\n");
}
return 0;
}
本题的重点是,如何将一个二维字符数组初始化为空格
memset(ans, ’ ', sizeof(ans));