分析:

根据题意输出即可,对于每一行,输出当前行的前置空格,最后不要忘记补全后面的空格,不然无法ac。

题解:

#include <bits/stdc++.h>
using namespace std;

int main() {
    int n = 0;
    //循环读入n
    while(scanf("%d", &n) != EOF) {
        int space = 0;
        //外循环遍历每一行
        for(int i = 0; i < n; ++i) {
            //输出前导的空格
            for(int j = 0; j < space; ++j)
                printf(" ");
            printf("*");
            //输出剩下的空格
            for(int k = 0; k < n-i-1; ++k)
                printf(" ");
            printf("\n");
            //空格数自增
            space++;
        }
    }
    return 0;
}

总结:

复杂图案的输出练习,基本思路可以参考之前的金字塔图案等题目,进行灵活改动。