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

矩阵列求和程序Bug排查:为何仅输出最后一个矩阵的计算结果?

问题原因分析
  1. 数据覆盖问题:你只声明了一个100x100的二维数组matrix,输入第二个矩阵时会直接覆盖第一个矩阵在数组中的存储位置,最终数组里仅保留最后一个矩阵的数据,输出时两个案例自然都调用了这组数据。
  2. 尺寸变量复用错误:inp2用于存储每个矩阵的尺寸,但输入完所有矩阵后,它的值停留在最后一个矩阵的尺寸(即3)。输出第一个矩阵时,循环使用inp2=3,不仅用了错误的尺寸,还读取了数组中不属于第一个矩阵的元素。
修复方案

提供两种实用修复方式,可按需选择:

方案一:边输入边计算输出(内存更高效)

无需存储完整矩阵,输入元素时直接累加列和,输入完一个矩阵立即输出结果,从根源避免数据覆盖和尺寸变量问题:

#include <stdio.h>

int main()
{
    int x, y, z;
    int inp1, inp2;
    int col_sum[100]; // 存储每列的和

    scanf("%d", &inp1);

    for(z = 0; z < inp1; z++){
        scanf("%d", &inp2);
        // 初始化列和数组为0
        for(x = 0; x < inp2; x++){
            col_sum[x] = 0;
        }
        // 输入矩阵元素,同步累加列和
        for(x = 0; x < inp2; x++){
            for(y = 0; y < inp2; y++){
                int num;
                scanf("%d", &num);
                col_sum[y] += num;
            }
        }
        // 输出当前矩阵的列和
        printf("Case #%d:", z+1);
        for(x = 0; x < inp2; x++){
            printf(" %d", col_sum[x]);
        }
        printf("\n");
    }

    return 0;
}

方案二:用三维数组存储所有矩阵(保留原始数据)

如果需要保留所有矩阵的原始数据,可使用三维数组存储,同时用单独数组记录每个矩阵的尺寸:

#include <stdio.h>

int main()
{
    int x, y, z;
    int inp1, inp2;
    int matrix[10][100][100]; // 最多存储10个100x100的矩阵
    int sizes[10]; // 记录每个矩阵的尺寸

    scanf("%d", &inp1);

    for(z = 0; z < inp1; z++){
        scanf("%d", &inp2);
        sizes[z] = inp2; // 保存当前矩阵的尺寸
        for(x = 0; x < inp2; x++){
            for(y = 0; y < inp2; y++){
                scanf("%d", &matrix[z][x][y]);
            }
        }
    }

    for(z = 0; z < inp1; z++){
        printf("Case #%d:", z+1);
        int n = sizes[z]; // 获取当前矩阵的尺寸
        for(x = 0; x < n; x++){
            int sum = 0;
            for(y = 0; y < n; y++){
                sum += matrix[z][y][x];
            }
            printf(" %d", sum);
        }
        printf("\n");
    }

    return 0;
}
测试验证

用你提供的输入测试任意方案,输出都会符合预期:

Case #1: 2 4
Case #2: 6 7 8

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 20:45:34