解题报告:这题我觉得题目有一个没有交代清楚的地方就是关于横线的字符的宽度的问题,题目并没有说,事实上题目要求的是在保证下面的圈高度不小于上面的圈的高度的情况下,横线的宽度就是等于下面的圈的高度。

1 #include<cstdio> 2 void outplay1(char d,int kuan,int n) { 3 while(kuan--) 4 printf(" "); 5 while(n--) 6 printf("%c",d); 7 puts(""); 8 } 9 void outplay2(char d,int kuan,int n,int h) { 10 while(h--) { 11 for(int i = 0;i<kuan;++i) 12 printf("%c",d); 13 for(int i = 0;i<n;++i) 14 printf(" "); 15 for(int i = 0;i<kuan;++i) 16 printf("%c",d); 17 puts(""); 18 } 19 } 20 21 int main() { 22 int T,h,flag = 0; 23 char A[3]; 24 scanf("%d",&T); 25 while(T--) { 26 if(flag) 27 puts(""); 28 flag = 1; 29 scanf("%s%d",A,&h); 30 int kuan = 1 + h / 6; 31 int n = h-3-(h-3)/2; 32 outplay1(A[0],kuan,n); 33 outplay2(A[0],kuan,n,(h-3)/2); 34 outplay1(A[0],kuan,n); 35 outplay2(A[0],kuan,n,n); 36 outplay1(A[0],kuan,n); 37 } 38 return 0; 39 }