#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int n=0; //层数 while (!n%2) //保证是奇数层 scanf("%d", &n); int blank = (n - 1) / 2; //第一行的空白数 int number = 0; //每一行的星星数 for (int i = 0; i < n / 2;i++) //上半部 { for (int j = 0; j < blank-i;j++) printf(" "); for (int j = 0; j < 1 + 2 * i; j++) printf("*"); printf(" "); } for (int i = 0; i < n; i++) //中间 printf("*"); printf(" "); for (int i = 1; i <= n / 2; i++)//后半段 { for (int j = 0; j < i; j++) printf(" "); for (int j = 0; j < n - i * 2; j++) printf("*"); printf(" "); } system("pause"); return 0; }