C/C++ 实现矩阵相乘(二)
2014-04-01 13:00
183 查看
说明:
1、C/C++实现矩阵相乘(一)从文件中读取矩阵,相乘并得到结果。下面的代码同样实现矩阵相乘,不过完全在控 制台进行,比较简单
2、编译工具:Visual Studio Professional 2013
运行结果:
1、C/C++实现矩阵相乘(一)从文件中读取矩阵,相乘并得到结果。下面的代码同样实现矩阵相乘,不过完全在控 制台进行,比较简单
2、编译工具:Visual Studio Professional 2013
#include<stdio.h> #include<stdlib.h> int main(){ int ROW1 = 0, COL1 = 0, ROW2 = 0, COL2 = 0, NUM = 0, RESNUM = 0; printf("输入矩阵 1 的行数\n"); scanf_s("%d", &ROW1); printf("输入矩阵 1 的列数\n"); scanf_s("%d", &COL1); int *p1 = (int *)malloc(ROW1*COL1*sizeof(int)); printf("依次输入矩阵各行数字,以回车隔开:\n"); for (int i = 0; i < ROW1*COL1; i++){ scanf_s("%d", p1 + i); } printf("输入矩阵 2 的行数\n"); scanf_s("%d", &ROW2); printf("输入矩阵 2 的列数\n"); scanf_s("%d", &COL2); int *p2 = (int *)malloc(ROW2*COL2*sizeof(int)); printf("依次输入矩阵各行数字,以回车隔开:\n"); for (int i = 0; i < ROW2*COL2; i++){ scanf_s("%d", p2 + i); } if (COL1 != ROW2){ printf("矩阵不匹配,不能相乘"); return 0; } int *result = (int *)malloc(ROW1*COL2*sizeof(int)); for (int rowone = 0; rowone < ROW1; rowone++) for (int coltwo = 0; coltwo <COL2; coltwo++){ for (int colone = 0, rowtwo = 0; colone < COL1, rowtwo <COL1; colone++, rowtwo++){ NUM += p1[rowone*COL1 + colone] * p2[coltwo + rowtwo*COL2]; } result[RESNUM] = NUM; NUM = 0; RESNUM++; } printf("\n结果是:\n"); for (int i = 0; i < ROW1*COL2; i++){ printf("%d ", result[i]); if ((i + 1) % COL2 == 0) printf("\n"); } free(p1); free(p2); free(result); }
运行结果:
相关文章推荐
- 第九周 项目2 对称矩阵压缩存储的实现与应用(相加、相乘)
- 将对称矩阵压缩存储,实现矩阵相乘,输出相乘后结果(用二维数组)
- C语言动态二维数组实现矩阵的相乘
- 矩阵相乘-c++代码实现及运行实例结果
- 矩阵相乘算法的Java语言实现
- 矩阵相乘strassen-c++代码实现及运行实例结果
- 矩阵相乘的一维数组实现
- C/C++实现矩阵相乘(一)
- 利用Hadoop实现超大矩阵相乘之我见(一)
- Linux下利用多线程实现矩阵相乘的并行计算
- 矩阵相乘-c++代码实现及运行实例结果
- 矩阵相乘strassen-c++代码实现及运行实例结果
- tensorflow实现简单的矩阵相乘
- 矩阵相乘的三种方法(java实现)
- c++实现两个矩阵相乘
- C语言实现两个矩阵相乘
- 3d数学基础—用C++实现矩阵的相乘和向理与矩阵的相乘
- C语言实现矩阵相乘
- C语言实现两个矩阵相乘
- 矩阵相乘-c++代码实现及运行实例结果