HDU 2073 叠框

解题报告:一个字符串的题,最恶心的还是格式问题,PE了很多次,要求是每个测试数据的后面都带有一个空行,但是最后一个不能有空行,所以只能把第一组

数据的前面不输出空行,而后面的每一组数据都输出空行,这样达到的效果跟理想的是一样的。

 1 #include<cstdio>
 2 #include<cstring>
 3 char map[100][100];
 4 int main() {
 5     int n,f = 0;
 6     char A[3];
 7     while(scanf("%d %c %c",&n,&A[0],&A[1])!=EOF) {
 8         if(f) printf("
");
 9         if(n == 1) {
10             printf("%c
",A[0]);
11             continue;
12         }
13         map[n/2][n/2] = A[0];
14         int flag = 1;
15         for(int k = 1;k<=(n-1)/2;++k) {
16             for(int i = n/2-k;i<=n/2+k;++i) {
17                 map[n/2-k][i] = A[flag];
18                 map[n/2+k][i] = A[flag];
19                 map[i][n/2-k] = A[flag];
20                 map[i][n/2+k] = A[flag];
21             }
22             flag = !flag;
23         }
24         map[0][n-1] = ' '; // 去掉四个角 
25         map[n-1][n-1] = ' ';
26         map[0][0] = ' ';
27         map[n-1][0] = ' ';
28         for(int i = 0;i<n;++i) {
29             map[i][n] = NULL;
30             printf("%s
",map[i]);
31         }
32         if(f == 0)
33         f = 1;
34     }
35     return 0;
36 }
37     
38      
View Code
原文地址:https://www.cnblogs.com/xiaxiaosheng/p/3254585.html