B2083 画矩形 题解
Daniel_7216 · · 题解
这是很好的一道循环结构的入门题,所以今天要介绍的是一种更简洁的方法。
Section A : 前置芝士:三目运算符
所谓三目运算符,可以简单理解为 if……else…… 的简洁版本,即形如 条件表达式?成立时的表达式:不成立时的表达式 的形式。
例如,在我的程序中有这么一句:
printf("%c", f == 0?' ':c);
意思是,如果
这种方法很有用,可以使很多分支结构程序简洁不少。
Section B :对 f = 0 时的分析
如果我们从
Section C:程序设计思路
如果理解上面 Section B 的思路,你就可以 A 了。
我们能否不用把程序分为两部分而是直接用两层循环解决问题呢?
可以。按照刚才的思路,如果不满足在矩形四边的条件,
如果在四条边上,那么不管
附15行代码:
#include <cstdio>
int a, b, f;
char c;
int main(){
scanf("%d %d %c %d", &a, &b, &c, &f);
for (int i = 0; i < a; i++){
for (int j = 0; j < b; j++){
if (i != 0 && i != a - 1 && j != 0 && j != b - 1)
printf("%c", f == 0?' ':c);
else printf("%c", c);
}
printf("\n");
}
return 0;
}
第一篇题解求通过 QAQ