好吧,如果第一个矩阵有n行和m列,我一直在尝试将两个矩阵相乘 第二个矩阵有p行和q列,而我做了一个条件,其中p必须等于m才能发生此循环。
float mult (float **m1, float **m2,float **ms){
for (int i = 0; i <n; i++)
{
for (int j = 0; j < q; j++)
{
ms[i][j]= 0;
for (int k = 0; k < p; k++)
{
ms[i][j] += m1[i][k] * m2[k][j];
}
}
}
return 0 ;
}
这是我初始化数组的地方
float** matrix1 = new float*[n];
for(int i = 0; i < n; ++i)
matrix1[i] = new float[m];
float** matrix3 = new float*[p];
for(int i = 0; i < p; ++i)
matrix3[i] = new float[q];
float** matrixmul = new float*[n];
for(int i = 0; i < n; ++i)
matrixmul[i] = new float[q];
这应该将matrix1与matrix3相乘并打印matrixmul 此功能是可打印的一种功能
void showmatrixmul(float **M){
cout <<"[" ;
for (int i=0;i<n;i++){
int x=0;
for (int j=0;j<q;j++){
x++;
cout << M[i][j];
if(j != q-1){
cout<< " " ;
}
}
if(i != n-1 ){
cout << ";";
}
x=0;
}
cout << "]";
}
我作为输出得到的全部是[;;;]
,这意味着在放置
[15 0 12;3 6 12;6 11 7;18 17 7]
*
[2 5 12 16 2;5 12 10 19 19;12 4 4 16 1]
作为输入,而预期输出 应该是这个
[174 123 228 432 42;180 135 144 354 132;151 190 210 417 228;205 322 414 723 366]
所有输入和输出应采用相同的形式 好的,我已经上传了乘法在这里工作所需的所有代码 https://ideone.com/nnTIDl