【每日一贴】求优化下列二维矩阵乘法
//矩阵的乘法#include <iostream>#include <cstdlib>#include <ctime>using namespace std;struct coord{ int i; int j;};int matrix_multi(int matrix1[4][5],struct coord c1,int matrix2[5][6],struct coord c2);int main(int argc,char* argv[]){ int matrix[4][5]; int matrix1[5][6]; int matrix_sum[4][6]; srand(time(0)); cout << "The First Matrix:" << endl; for(int i=0;i<4;i++){ for(int j=0;j<5;j++){ matrix[i][j] = 10*rand()/RAND_MAX; cout << matrix[i][j] << "\t"; cout.flush(); } cout << endl; } cout << endl; cout << "The Second Matrix:" << endl; for(int i=0;i<5;i++){ for(int j=0;j<6;j++){ matrix1[i][j] = 10*rand()/RAND_MAX; cout << matrix1[i][j] << "\t"; cout.flush(); } cout << endl; } struct coord c1;c1.i=4;c1.j=5; struct coord c2;c2.i=5;c2.j=6; matrix_multi(matrix,c1,matrix1,c2); return 0;}int matrix_multi(int matrix1[4][5],struct coord c1,int matrix2[5][6],struct coord c2){ if(c1.j != c2.i){ cout << "您输入的矩阵不符合规则,请输入合法的矩阵进行运算!" << endl; return -1; }else{ cout << "After Multiply:" << endl; int sum = 0; for(int i=0;i<c1.i;i++){ for(int j=0;j<c2.j;j++){ for(int k=0;k<c1.j;k++){ sum += matrix1[i][k]*matrix2[k][j]; } cout << sum << "\t"; cout.flush(); sum = 0; } cout << endl; } return 0; }}