解题报告:一个字符串的题,最恶心的还是格式问题,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