#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #define MAX 26 void test(char* p) { int num = 0; //定義一個變量記錄中間的值 for (int i = 0; i < MAX; i++) { for (int j = 0; j < MAX-i; j++) //循環打印空格 以中心26為中心,每行需要輸出26-i個空格 { printf(" "); } for (int j = 0; j < (2 * i + 1); j++) //打印字母 { if (i == 0) //如果打印為塔尖則只打印一個A { printf("A"); } else { if (j < i + 1) //正序打印 { printf("%c", p[j]); num++; } else //倒序打印 { printf("%c", p[--num-1]); } } } if (i != MAX - 1) printf("\n"); num = 0; } } int main() { char a[26]; //定義一個存放26個字母的數組 for (int i = 0; i < 26; i++) { a[i] = 'A' + i; } test(&a); return 0; }