排版题, 要注意getchar()的使用
#include <stdio.h>
#include <cstring>
char maps[41][81];
int main()
{
char c;
int n;
bool first = false;
while(scanf("%c", &c) && c != '@')
{
scanf("%d", &n);
getchar(); //读取回车
memset(maps, ' ', sizeof(maps));
if(first)
printf("\n");
else
first = true;
for(int i = 0; i < n-1; i++)
{
maps[i][n-1-i] = c;
maps[i][n-1+i] = c;
maps[i][n+i] = '\0';
}
for(int i = 0; i < 2*n-1; i++)
maps[n-1][i] = c;
maps[n-1][2*n-1] = '\0';
for(int i = 0; i < n; i++)
printf("%s\n", maps[i]);
}
return 0;
}