题意:
输入一个字符串长度为5~80,以'U'型输出,使得底端一行字符数量不小于侧面一列,左右两列长度相等。
trick:
不把输出的数组全部赋值为空格为全部答案错误,可能不赋值数组里值为0,赋值后是' ',空格的ascii是32,初读题面时并没有看到要输出空格,因为打印0其实效果看起来好像一样。。。
AAAAAccepted code:
1 #define HAVE_STRUCT_TIMESPEC 2 #include<bits/stdc++.h> 3 using namespace std; 4 string s; 5 char a[87][87]; 6 int main(){ 7 memset(a,' ',sizeof(a)); 8 cin>>s; 9 int n=s.size(); 10 int x=(n+2)/3; 11 for(int i=1;i<=x;++i) 12 a[i][1]=s[i-1]; 13 for(int i=x+1;i<=n-x;++i) 14 a[x][i-x+1]=s[i-1]; 15 for(int i=x;i>=1;--i) 16 a[i][n-2*x+2]=s[n-i]; 17 for(int i=1;i<=x;++i){ 18 for(int j=1;j<=n-2*x+2;++j) 19 cout<<a[i][j]; 20 if(i!=x) 21 cout<<" "; 22 } 23 return 0; 24 }