如何移除C++打印9x9数独代码中每行输出末尾的多余空白字符
修复方案
问题原因
你当前的代码逻辑为每输出一个数独数字就追加一个空格,每行9个数字共输出9个空格,最后一个空格会出现在行尾,形成冗余空白。
可选实现方案
方案1:单独输出行首元素(固定9列场景下效率最优)
void printSudoku9x9(int grid[9][9]) { for (int y = 0; y < 9; y++){ // 行首第一个元素不加前置空格 cout << grid[y][0]; // 从第二个元素开始先输出空格再输出数字 for (int x = 1; x < 9; x++) { cout << ' ' << grid[y][x]; } cout << endl; } }
方案2:通过下标判断是否输出空格(兼容性更强,适配列数不固定的场景)
void printSudoku9x9(int grid[9][9]) { for (int y = 0; y < 9; y++){ for (int x = 0; x < 9; x++) { // 仅非行首元素前加空格 if (x != 0) { cout << ' '; } cout << grid[y][x]; } cout << endl; } }
两种方案最终效果一致,都能保证数字之间仅保留1个分隔空格,行尾无多余空白字符。
内容的提问来源于stack exchange,提问作者Asithandile Ludonga
相关产品推荐
相关产品推荐

