分析:

本题与https://blog.nowcoder.net/n/9dec393062c048c9bbfefa4e45224fda
类似,与之不同的是图案要倒着打印,这里只需自减循环即可。

题解:

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

int main() {
    int n = 0;
    while(scanf("%d", &n) != EOF) {
        //外循环控制打印的行数
        for(int i = n; i > 0; --i) {
            //内循环控制列数,当前行的列数不能大于当前行
            for(int j = 1; j <= i; ++j) {
                //如果 i == j即输出星号,否则输出空格
                if(j == i)
                    printf("*\n");
                else
                    printf("* ");
            }
        }
    }
    return 0;
}

题解2:

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

int main() {
    int n = 0;
    //题解2思路和上述一样,不同之处在于将for循环换成了while循环
    while(scanf("%d", &n) != EOF) {
        int i = n;
        while(i > 0) {
            int j = 1;
            while(j <= i) {
                if(j == i)
                    printf("*\n");
                else
                    printf("* ");
                ++j;
            }
            --i;
        }
    }
    return 0;
}

总结:

逆序自减循环的使用,以及两重循环的使用。