C++如何将控制台输出的国际象棋棋盘切换为横向排列格式
问题原因
现有代码外层循环遍历AH列标识,每次循环输出同一列的81行坐标,因此最终输出按列纵向排列,和要求的按行横向排列逻辑相反。
解决方法
调换两层遍历的优先级:
- 外层循环控制行号,从8倒序遍历到1(国际象棋棋盘默认顶部为8号行)
- 内层循环控制列标识,从A遍历到H,每行内依次输出「列字母+当前行号」的组合即可
修改后代码
#include <iostream> using namespace std; int main() { // 外层遍历行号,从8到1依次输出每一行 for(int row = 8; row >= 1; row--) { // 内层遍历列字母,输出当前行的所有格子 for(char col = 'A'; col <= 'H'; col++) { cout << col << row << " "; } // 单行输出完成后换行 cout << "\n"; } return 0; }
运行效果说明
修改后输出第一行为A8 B8 C8 D8 E8 F8 G8 H8,第二行为A7 B7 C7 D7 E7 F7 G7 H7,以此类推,完全符合横向按行排列的要求。
内容的提问来源于stack exchange,提问作者averagestudent
相关产品推荐
相关产品推荐

