首先明确做题整体思路:

  • 分为两部分:上半部分和下半部分。
  • 上下部分又可划分为打印空格和'*'。
  • 循环由空格个数和'*'个数来决定j(循环几次)。
  • 根据循环行数i找出规律。
#include<stdio.h>
#include<stdlib.h>
int main()
{
    int i = 0;
    int j = 0;
    int line = 0;
    scanf("%d",&line);  
    //打印上半部分
    for(i = 0;i < line;i++)
        {
            //打印空格
            for(j = 0;j < line - i - 1;j++)
            {
            printf(" ");
            }
            //打印*
            for(j = 0;j < 2*i + 1;j++)
            {
                printf("*");
            }
            printf("\n");
        }
        
    //打印下半部分    
    for(i = 0;i < line - 1;i++)
        {
            //打印空格
            for(j = 0;j<=i;j++)
            {
                printf(" ");
            }
            //打印*
            for(j = 0;j < 2*(line - 1 -i) - 1;j++)
            {
                printf("*");
            }
            printf("\n");
        }
        
    system("pause");
    return 0;
}