如何实现方框左侧降序数字、底部升序数字的打印效果?
目标边框打印的修改方案
预期效果
# # # # # # # # # # # 8# # 7# # 6# # 5# # 4# # 3# # 2# # 1# # 0# # # # # # # # # # # # # 0 1 2 3 4 5 6 7 8
原代码问题
- 行输出顺序为正序(0到7),与预期倒序(8到0)不符
- 缺少左侧行号(8-0)与底部列号(0-8)
- 上下边框的
#数量与预期不一致 - 中间行的边框与行号排版未对齐
修改后代码
#include <iostream> using namespace std; int main() { const int num_range = 8; // 行/列号范围为0-8 // 打印顶部边框 cout << " "; for (int i = 0; i <= num_range + 1; i++) { cout << "# "; } cout << "\n"; // 打印中间带行号的行(从8到0倒序) for (int i = num_range; i >= 0; i--) { cout << i << "#"; // 填充中间空格 for (int j = 0; j < num_range * 2 - 1; j++) { cout << " "; } cout << "#\n"; } // 打印底部边框 cout << " "; for (int i = 0; i <= num_range + 1; i++) { cout << "# "; } cout << "\n"; // 打印底部列号 cout << " "; for (int i = 0; i <= num_range; i++) { cout << i << " "; } cout << "\n"; return 0; }
代码说明
- 边框部分:顶部和底部边框开头加一个空格,循环打印11个
#,与预期格式匹配 - 中间行:从8到0倒序输出行号,行号后紧跟左侧
#,中间填充17个空格后打印右侧#,保证排版对齐 - 列号部分:开头加3个空格,依次输出0-8的列号,每个列号后加空格
内容的提问来源于stack exchange,提问作者moo moo
相关产品推荐
相关产品推荐

