获取字符数组长度
strlen(char*)
本题总结
对n1,n2的范围要把控好,能在草稿纸上进行的操作尽量在草稿纸上化简好。
需跳过一个个坑:
代码展示:
#include<cstdio>
#include<cstdlib>
#include<cstring>
int main(){
char c[81];
int n1,n2,N;
scanf("%s",c);
N=strlen(c);
//以下内容可在草稿纸上进行,做好判断
if(N<=7){
for(int t=(N-1)/2;t>=1;t--){
if((N+2)>=3*t){ //临界点,表示这时候得到的U型是最方的,符合题目要求
n1=t;
break;
}
}
}else{
for(int t=(N+2)/3;t>=1;t--){
if((N+2)>=3*t){ //临界点,表示这时候得到的U型是最方的,符合题目要求
n1=t;
break;
}
}
}
n2=N-2*n1+2;
//U型打印过程,基本操作
for(int i=0;i<n1-1;i++){
printf("%c",c[i]);
for(int j=1;j<=n2-2;j++){
printf(" ");
}
printf("%c\n",c[N-i-1]);
}
for(int i=0;i<n2;i++){
printf("%c",c[n1-1+i]);
}
return 0;
}