#include <stdio.h> int getarray2value(int **array, int row, int col, int i, int j) { return *((int*)array+i*col+j); } void multimatrix(int **ans,int **aa,int b,int c, int **ll,int m,int n) { int i,j,k; if(c != m) { printf("error!"); return; } for(i=0;i<b;i++) { for(j=0;j<n;j++) // *((int*)ans+i*n+j) = 0; { for(k=0;k<m;k++) { *((int*)ans+i*n+j) += getarray2value(aa,b,c,i,k)*getarray2value(ll,m,n,k,j); } } } } void printMatrix(int **array,int b, int c) { int i,j; for(i=0;i<b;i++) { for(j=0;j<c;j++) // printf("%d/t",/*array[i][j]*/*((int*)array+i*c+j)); printf("%d/t",getarray2value(array,b,c,i,j)); printf("/n"); } } int main() { int a[2][3] = {{1,2,3}, {3,2,1}}; int b[3][2]= {1,2, 2,1, 0,1}; int ans[2][2]={0}; printf("撻淝a峈ㄩ/n"); printMatrix(a,2,3); printf("撻淝b峈ㄩ/n"); printMatrix(b,3,2); printf("眈傚賦彆ㄩ/n"); multimatrix(ans,a,2,3,b,3,2); printMatrix(ans,2,2); getch(); return 0; }