#include <stdio.h> int main() { int num; char s; int left; //剩下的符号个数 int i = 1; //每一行要打印符号的个数 int n = 1;//总共能打印的符号个数 int j, k; int count; int total; scanf("%d %c", &num, &s); while (n <= num && i >= 1) { i = i+2; n = n + 2 * i; } n = n - 2 * i; i = i - 2; left = num - n; // 上半部分符号打印,包括1个的哪一行 for (j = i; j >= 1; j = j - 2) { // 判断是否要输出空格,以及输出空格的个数 total = (i - j) / 2; if (total) { while (total) { printf(" "); total--; } } // 输出对应行要打印的符号 for (count = j; count >= 1; count--) {
printf("%c", s); } printf("\n");
} // 下半部分符号的打印,从3开始 for (k = 3; k <= i; k = k+2) { // 判断是否要输出空格,以及输出空格的个数 total = (i - k) / 2; if (total) { while (total) { printf(" "); total--; } } for (count = k; count >=1; count--) { printf("%c", s); } printf("\n"); } printf("%d", left); return 0; }