分析:
本题与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;
}总结:
逆序自减循环的使用,以及两重循环的使用。

京公网安备 11010502036488号