You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改C++代码实现8行6列数字矩阵偶数行倒序交替输出

解决方案

修改思路

你的奇偶行判断思路完全可行,只需要调整输出时的列遍历方向即可,另外原代码有2个小问题需要先修复:

  • 循环变量i、j没有提前声明,C++中需要先定义变量再使用
  • 原有的空格对齐逻辑可以优化,避免出现错位

具体修改逻辑:

  1. 先按原有逻辑填充二维数组,不需要修改填充规则
  2. 输出时判断当前行索引i的奇偶性:
    • 偶数索引行(i%2 == 0):从最后一列往前遍历输出,实现倒序效果
    • 奇数索引行:保持原有从左到右的遍历逻辑

完整可运行代码

#include <iostream>
#include <iomanip>
using namespace std;
int main() {
    // 定义矩阵维度
    int x = 6, y = 8;
    int sum = 0;
    int numery[8][6] = {};
    int i, j;

    // 顺序填充矩阵
    for (i = 0; i < y; i++) {
        for (j = 0; j < x; j++) {
            numery[i][j] = ++sum;
        }
    }

    // 按要求格式输出
    for (i = 0; i < y; i++) {
        if (i % 2 == 0) {
            // 偶数行倒序输出
            for (j = x - 1; j >= 0; j--) {
                cout << setw(4) << numery[i][j];
            }
        } else {
            // 奇数行正序输出
            for (j = 0; j < x; j++) {
                cout << setw(4) << numery[i][j];
            }
        }
        cout << endl;
    }
    return 0;
}

不引入的兼容版本

如果你不想额外引入头文件,也可以保留手动加空格的对齐逻辑,替换输出部分的代码即可:

// 输出部分替换为以下代码
for (i = 0; i < y; i++) {
    if (i % 2 == 0) {
        for (j = x - 1; j >= 0; j--) {
            // 个位数前面补2个空格,两位数补1个空格对齐
            if (numery[i][j] <= 9) cout << "  ";
            else cout << " ";
            cout << numery[i][j] << " ";
        }
    } else {
        for (j = 0; j < x; j++) {
            if (numery[i][j] <= 9) cout << "  ";
            else cout << " ";
            cout << numery[i][j] << " ";
        }
    }
    cout << endl;
}

内容的提问来源于stack exchange,提问作者znaczki654

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 10:06:01