求恩人运行一下,看看哪儿错了吧?

weixin_43729886 2019-04-12 10:40:56
/* 实现两个动态矩阵的乘积(线性代数算法) */ /* 错误可能在第55到70行,你可以运行试试看~ */ #include<iostream> using namespace std; int main() { int m1,n1,m2,n2; int **dm1, **dm2,**dm3; cout << "Please input the first matrix size m1,n1:"; cin >> m1 >> n1; dm1 = new int *[m1];//矩阵dm1,建立m1行 for (int i = 0; i < m1; i++) {//为m1行分配n1个空间 if ((dm1[i] = new int[n1]) == NULL) exit(0); } cout << "请输入矩阵dm1:"; for (int i = 0; i < m1; i++) { for (int j = 0; j < n1; j++) cin >> dm1[i][j]; } cout << "Please input the first matrix size m2,n2:"; cin >> m2 >> n2; dm2 = new int *[m2];//矩阵dm2,建立m2行 for (int i = 0; i < m2; i++) {//为m2行分配n2个空间 if ((dm2[i] = new int[n2]) == NULL) exit(0); } cout << "请输入矩阵dm2:"; for (int i = 0; i < m2; i++) { for (int j = 0; j < n2; j++) cin >> dm2[i][j]; } if (n1 != m2) { cout << "输入错误矩阵,请重新输入!!!"; } else { //新矩阵的行列为m1,n2 dm3 = new int *[m1];//矩阵dm3,建立m1行 for (int i = 0; i < m1; i++) {////为m1行分配n2个空间 if ((dm3[i] = new int[n2]) == NULL) exit(0); } //录入dm3 for (int i = 0; i < m1 ; i++) { for (int j = 0;j < n2; j++) { for (int x = 0; x <m2; x++) { dm3[i][j]+=dm1[i][x] * dm2[x][j]; } } } for (int i = 0; i < m1; i++) { for (int j = 0; j < n2; j++) { cout << dm3[i][j]<<" "; } cout << "\n"; } } //释放空间 for (int i = 0; i < m1; i++) { delete[]dm1[i]; } delete[]dm1; for (int i = 0; i < m2; i++) { delete[]dm2[i]; } delete[]dm2; system("pause"); return 0; }
...全文
45 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧