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

C++使用vector实现矩阵乘转置程序运行中断问题排查求助

错误原因

  • 向量初始化维度错误
    你初始化的三个向量维度全部不符合要求:
    1. 原矩阵vec是row行col列,你错误将每行大小设为row,当col > row时,后续给vec[i][j]赋值就会出现越界
    2. 转置矩阵tran应该是col行row列,你错误初始化为row行row列,后续访问tran[i][j]当i >= row时直接越界崩溃,这就是程序打印完原矩阵就终止的核心原因
    3. 原矩阵乘转置矩阵的结果ans维度是row行row列,你初始化时每行大小设置错误,且默认填充值不需要设为col,应该初始化为0
  • 转置赋值逻辑写反
    转置的正确赋值逻辑是tran[j][i] = vec[i][j],你写反为tran[i][j] = vec[j][i],vec只有row行,当j >= row时访问vec[j][i]直接越界
  • 矩阵乘法逻辑完全错误
    矩阵乘法要求结果矩阵的ans[i][j]是原矩阵第i行和转置矩阵第j列的逐元素乘积求和,你写的赋值逻辑完全不符合矩阵乘法规则

修正后的完整代码

//  Multiplication of Matrix by its Transpose
#include <bits/stdc++.h>
using namespace std;

int main()
{
    int row,col;
    cout<<"ENTER ROWS:";
    cin>>row;
    cout<<"ENTER COLS:";
    cin>>col;

    // 修正三个向量的初始化维度
    vector<vector<int>> vec(row, vector<int> (col, 0));
    vector<vector<int>> tran(col, vector<int> (row, 0));
    vector<vector<int>> ans(row, vector<int> (row, 0));

    for(int i=0;i<row;i++)
    {
        for(int j=0;j<col;j++)
        {
            int t;
            cin>>t;
            vec[i][j]=t;
        }
    } 
    cout<<"\n"<<"Orignal Matrix:"<<endl;
    for(int i=0;i<row;i++)
    {
        for(int j=0;j<col;j++)
        {
            cout<<vec[i][j]<<" ";
        }
        cout<<"\n";
    }

    // 修正转置赋值逻辑
    for(int i=0;i<row;i++) 
    {
        for(int j=0;j<col;j++)
        {
            tran[j][i] = vec[i][j];
        }
    }

    cout<<"\n\nTranspose Matrix: \n\n";
    for(int i=0;i<col;i++)
    {
        for(int j=0;j<row;j++)
        {
            cout<<tran[i][j]<<" ";
        }
        cout<<endl;
    }

    // 修正矩阵乘法逻辑
    for(int i=0;i<row;i++) 
    {
        for(int j=0;j<row;j++)
        {
            for(int k=0;k<col;k++)
            {
                ans[i][j] += vec[i][k] * tran[k][j];
            }
        }
    }
    cout<<"\n\nMultiplied Matrix: \n\n";
    for(int i=0;i<row;i++)
    {
        for(int j=0;j<row;j++)
        {
            cout<<ans[i][j]<<" ";
        }
        cout<<endl;
    }
    return 0;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 09:06:02