分析:

使用两重循环,内循环中逐步增大所需打印的数量即可。

题解:

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

int main() {
    int n = 0;
    //循环读入n
    while(scanf("%d", &n) != EOF) {
        //外循环控制行数
        for(int i = 1; i <= n; ++i) {
            //内循环控制列数,保证列数不多于行数
            for(int j = 0; j < i; ++j) {
                //当i == j时候输出星号,否则输出空格
                if(j == i-1)
                    printf("*\n");
                else
                    printf("* ");
            }
        }
    }
    return 0;
}

题解2:

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

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

总结:

两重循环的控制使用。