1 条题解
-
0
自动搬运
来自洛谷,原作者为

Daniel_7216
If there is a way to turn back and rebuild all the long lost dreams搬运于
2025-08-24 21:03:18,当前版本为作者最后更新于2021-07-07 15:13:18,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
这是很好的一道循环结构的入门题,所以今天要介绍的是一种更简洁的方法。
Section A : 前置芝士:三目运算符
所谓三目运算符,可以简单理解为 if……else…… 的简洁版本,即形如 条件表达式?成立时的表达式:不成立时的表达式 的形式。
例如,在我的程序中有这么一句:
printf("%c", f == 0?' ':c);意思是,如果 ,输出空格,否则输出指定字符。
这种方法很有用,可以使很多分支结构程序简洁不少。
Section B :对 时的分析
如果我们从 开始,画出一个空心矩形,那么不难发现,当前位置 满足 、 、 、 中的任何一种的话就要填充字符。
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
- 1
信息
- ID
- 6940
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 1
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者