c++ - 我的程序在完成所有执行之前就中断了
问题描述
我正在尝试使用Vectors
. 虽然在打印我输入的矩阵并在不执行任何循环和数学运算的情况下中断后运行程序未执行。为什么我的程序在第二个 for 循环后结束?我哪里错了?
// 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> (row,col));
vector<vector<int>> tran(row, vector<int> (row,col));
vector<vector<int>> ans(row, vector<int> (row,col));
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++) // transpose
{
for(int j=0;j<col;j++)
{
tran[i][j]=vec[j][i];
}
}
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++) // multiplication
{
for(int j=0;j<col;j++)
{
ans[i][0]=vec[i][0]*tran[0][j];
ans[0][j]=vec[0][j]*tran[i][0];
}
}
cout<<"\n\nMultiplied Matrix: \n\n";
for(int i=0;i<row;i++)
{
for(int j=0;j<col;j++)
{
cout<<ans[i][j]<<" ";
}
cout<<endl;
}
}
我得到的输出:
ENTER ROWS:3
ENTER COLS:5
2 4 5 5 6
4 6 7 9 0
1 2 3 5 8
Orignal Matrix:
2 4 5 5 6
4 6 7 9 0
1 2 3 5 8
预期输出:
ENTER ROWS:3
ENTER COLS:5
2 4 5 5 6
4 6 7 9 0
1 2 3 5 8
Orignal Matrix:
2 4 5 5 6
4 6 7 9 0
1 2 3 5 8
Transpose Matrix:
2 4 1
4 6 2
5 7 3
6 9 5
6 0 8
Multiplied Matrix:
106 112 98
112 182 82
98 82 103
解决方案
好的,首先...有一些方法可以找出程序崩溃的位置。至少,您可以添加更多 cout 语句,它会告诉您。
但这很明显:
vector<vector<int>> vec(row, vector<int> (row,col));
vector<vector<int>> tran(row, vector<int> (row,col));
for(int i=0;i<row;i++) // transpose
{
for(int j=0;j<col;j++)
{
tran[i][j]=vec[j][i];
}
}
您声明了两者vec
并且tran
完全相同,但是您确实需要将行数与 tran 列数翻转。
考虑正在发生的事情。i
从 0 到 2。没关系。j
从 0 到 4。然后执行 tran[3][0] = vec[0][3]。
但是 tran[3] 超出了数组的末尾,你会得到一个越界错误。
推荐阅读
- wordpress - 保护WordPress中“上传”文件夹中文件的策略
- sharepoint - 如何在画面中处理多个问题的答案
- kotlin - 在 Kotlin 中为 BLE 实现有限状态机
- arrays - 如何比较集合中的嵌套数组和纯数组?
- python - 我正在尝试在 pycharm 中使用 selenium 来打开 Firefox。我不知道问题是什么
- kubernetes - 限制 kubernetes chron 作业中一次启动的容器数量
- android - Android Wifi DPP(Wi-Fi 轻松连接)
- apache-spark - Kubernetes 中的 Statefulset Spark Master HA 如果运行 master pod 的 Kubernetes 节点本身出现故障
- python - 我正在尝试在 heroku 上托管 discord.py 机器人并且发生此错误
- javascript - javascript 字符串中 %1$s 的意义/目的?