算法之矩阵乘法
分析和思路:直接根据矩阵相乘规则进行循环计算赋值,注意循环程序的设计
1 // MatrixMulte.cpp : 定义控制台应用程序的入口点。 2 // 3 4 #include "iostream" 5 using namespace std; 6 7 int main() 8 { 9 10 int arr1_x=0; 11 12 while(cin>>arr1_x) 13 { 14 15 16 int arr1_y=0; 17 int arr2_x=0; 18 int arr2_y=0; 19 int arr1[100][100]; 20 int arr2[100][100]; 21 int result[100][100]={0}; 22 23 cin>>arr1_y; 24 cin>>arr2_y; 25 26 27 28 arr2_x=arr1_y; 29 int result_x=arr1_x; 30 int result_y=arr2_y; 31 32 for(int i=0;i<arr1_x;i++) 33 { 34 35 for(int j=0;j<arr1_y;j++) 36 { 37 int temp=0; 38 cin>>temp; 39 arr1[i][j]=temp; 40 41 } 42 } 43 44 45 for(int i=0;i<arr2_x;i++) 46 { 47 48 for(int j=0;j<arr2_y;j++) 49 { 50 int temp=0; 51 cin>>temp; 52 arr2[i][j]=temp; 53 54 } 55 } 56 57 58 59 60 61 62 63 64 for(int k=0,i=0;k<arr1_x&&i<result_x;k++,i++) 65 {//1 66 for(int t=0,j=0;t<arr2_y&&j<result_y;t++,j++) 67 { 68 for(int m=0,n=0;m<arr1_y&&n<arr2_x;m++,n++) 69 { 70 71 result[i][j]+=arr1[k][m]*arr2[n][t]; 72 73 } 74 75 } 76 77 78 }//1 79 int a=5; 80 81 for(int i=0;i<result_x;i++) 82 {//1 83 for(int j=0;j<result_y;j++) 84 { 85 cout<<result[i][j]<<" "; 86 } 87 cout<<endl; 88 } 89 90 91 92 } 93 94 95 }
主要为了自己学习