解题思路:找字符位置的规律。除了最后一行为2n-1个字符全部输出,其余行的字符位置满足pos1==n+i-1和pos2=n-i+1(i为行数,从1开始)
#include <stdio.h> using namespace std; int main() { char a; int n; while((a=getchar())!='@') { scanf("%d",&n); getchar();//记住这一句不能省,否则会在第二次输入时a直接变成 (换行符)! for(int i=1;i<n;i++) { for(int j=1;j<=n+i-1;j++) { if(j==n-i+1||j==n+i-1) { printf("%c",a); } else { printf(" "); }; }; printf(" "); }; for(int m=1;m<2*n;m++) { printf("%c",a); }; printf(" "); printf(" "); } return 0; }