#include "stdio.h" void main() { int a,b,c,d;//定義四個變量 char zi=65;//字母A的ascall碼表對應的數值 scanf("%d",&a);//接收你要輸入的行數 for(c=1;c<=a;c++){//控制行數 for(d=1;d<=a-c;d++)//控制打印空格的個數,是一個倒直角三角形 { printf(" "); } for(b=1;b<=2*c-1;b++)//控制打印一行內打印字母的個數 { if(c!=1&&b==c)//可以發現,從第二行開始,每行中不同的字母所在的位置跟它的行號是一致的, { printf("%c",zi+1);//當它打印到對應行個的時候就打印下一個字母 b++;//因為上面打印一個了,所以總體的個數要++,不然就會打印多一個了 } printf("%c",zi);//打印字母 } printf("\n");//換行 zi++;//打印完一行之后就換下一個字母 } }