#include <stdio.h>

int main() {
    int n;
    while (scanf("%d", &n) != EOF) {
        for (int i = 1; i <= n; i++)              //i表示行数,逐行打印
        {
            for (int j = 1; j <= n - i; j++)      //打印第i行的n-i个空格
            {
                printf(" ");
            }
            for (int k = 1; k <= i; k++)           //打印第i行的i个*
            {
                printf("* ");
            }
            printf("\n");                   //打印完一行,输出换行符
        }
    }
}

一开始会陷入误区,无法解决每行后半部分的空格,后来发现划分成多个打印步骤,思路会比较清晰