線代----矩陣乘法
阿新 • • 發佈:2019-01-03
複製下列程式碼--找個編譯器編譯一下
程式碼:
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; #define LL long long struct node{ int n,m; LL shu[20][20]; void clear() { for (int i=0;i<n;i++) for (int j=0;j<m;j++) shu[i][j]=0; } node operator * (const node &B ) const { node C; C.n=n; C.m=B.m; C.clear(); for (int i=0;i<C.n;i++) for (int j=0;j<C.m;j++) for (int k=0;k<m;k++) C.shu[i][j]+=shu[i][k]*B.shu[k][j]; return C; } }A,B,C; int main() { printf("請輸入第一個矩陣的n和m: "); scanf("%d%d",&A.n,&A.m); printf("請輸入第一個矩陣中的元素:\n"); for (int i=0;i<A.n;i++) for (int j=0;j<A.m;j++) scanf("%lld",&A.shu[i][j]); printf("請輸入第二個矩陣的n和m: "); scanf("%d%d",&B.n,&B.m); printf("請輸入第二個矩陣中的元素:\n"); for (int i=0;i<B.n;i++) for (int j=0;j<B.m;j++) scanf("%lld",&B.shu[i][j]); C=A*B; printf("相乘矩陣n , m 為 %d %d\n",C.n,C.m); for (int i=0;i<C.n;i++) { for (int j=0;j<C.m;j++) printf("%lld ",C.shu[i][j]); printf("\n"); } return 0; } /* 2 2 1 2 1 4 2 2 3 5 2 7 */