C++ 二维数组实现矩阵乘法

新手上路,请多包涵

1、问题:在用C++中的二维数组实现矩阵乘法的过程中,Dev C++出现的报错信息看不懂。但是百度了一下相关的代码,暂时没看出什么思路上有什么不同。还求大佬们给些提示。PS:正在下载VS2017 Community,看看是不是IDE的问题。
2、具体代码如下:

include<iostream>

using namespace std;

int main(){

int m, n ,p, q;
int a[m][n];
int b[p][q];
cin>>m>>n;
for(int i = 0 ; i < m ; ++i)
    for(int j = 0 ; j < n ; ++j)
        cin>>a[i][j];
cin>>p>>q;
for( int i = 0 ; i < p ; ++i)
    for(int j = 0 ; j < q ; ++j )
        cin>>b[p][q];
int c[m][q];//c[m][q] = a[m][n] * b[p][q]
for( int i = 0 ; i < p ; ++i)
    for (int j = 0 ; j < q ; ++j)
        c[i][j] = 0;
        for(int s = 0 ; s < n ; ++s)
            c[i][j] += a[i][s] * b[s][j];
for( int i = 0 ; i < m ; ++i)
    for( int j = 0 ; j < q ; ++j)
        cout<<c[i][j]<<" ";
    cout<<endl;
return 0;                

}
3、代码的截图和报错的截图如下:
图片描述

图片描述

4、关于报错的进一步描述
百度了一下具体的报错信息,可惜真的看不懂
5、自己关于这个问题的理解
我感觉报错信息可能是在纠结 i 和 j 的问题,因为数组里面的下标必须是常量或者常量表达式。但是在第三层循环中,i 和 j 确实是常量,所以我个人认为不存在 i 和 j 是否是常量的问题。

阅读 6.5k
1 个回答
新手上路,请多包涵

m,n,p,q未初始化

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题