本文共 996 字,大约阅读时间需要 3 分钟。
/* 矩阵A、B、C都按行(数据的存储顺序)访问,以提高存储器访问效率, 对于A的第i行中,第j列的元素分别和B的第j行的元素相乘, 对于B中相同的列k在上述计算过程中求和,从而得到C第i行k列的数据。 出处: http://blog.csdn.net/denlee/article/details/4206923*/#include#define M 4#define N 3#define L 3int main(){ double a[M][N], b[N][L], c[M][L]; freopen("Array.txt", "r", stdin); freopen("ans2.txt", "w", stdout); for(int i = 0; i < M; i++) for(int j = 0; j < N; j++) scanf("%lf", &a[i][j]); for(int i = 0; i < N; i++) for(int j = 0; j < L; j++) scanf("%lf", &b[i][j]); int temp[L] = { 0}; for(int i = 0; i < M; i++) { for(int t = 0; t < L; t++) temp[t] = 0; for(int j = 0; j < N; j++) //当前行的每个元素 for(int k = 0; k < L; k++) temp[k] += a[i][j] * b[j][k]; for(int k = 0; k < L; k++) { c[i][k] = temp[k]; printf("%lf\t", c[i][k]); } printf("\n"); } return 0;}
数据文件
实验结果