C语言实现矩阵相乘
C语言 实现 矩阵 相乘
2023-09-11 14:16:17 时间
1 #include "stdio.h"
2 #include "stdlib.h"
3 #include "time.h"
4 #define random(x) (rand()%x)
5
6 int main ()
7 {
8 int m,l,p,q;
9 printf("输入第一个矩阵的维数m和l:");
10 scanf("%d%d",&m,&l);
11 printf("输入第二个矩阵的维数p和q:");
12 scanf("%d%d",&p,&q);
13 while (l!=p)
14 {
15 printf("两个矩阵不匹配,不能进行相乘运算,请重新输入...\n\n");
16 printf("输入第一个矩阵的维数m和l:\n");
17 scanf("%d%d",&m,&l);
18 printf("输入第二个矩阵的维数p和q:\n");
19 scanf("%d%d",&p,&q);
20 }
21 int a[1000][1000]={0}, b[1000][1000]={0},sum=0;
22 int i,j,k=0;
23
24 for (i=0;i<m;i++)
25 {
26 for (j=0;j<l;j++)
27 {
28 a[i][j]=(int)random(10);
29 }
30 }
31 printf("随机矩阵a是:\n");
32 for (i=0;i<m;i++)
33 {
34 for (j=0;j<l;j++)
35 {
36 printf("%d ",a[i][j]);
37 }
38 printf("\n");
39 }
40
41 for (i=0;i<p;i++)
42 {
43 for (j=0;j<q;j++)
44 {
45 b[i][j]=(int)random(10);
46 }
47 }
48 printf("随机矩阵b是:\n");
49 for (i=0;i<p;i++)
50 {
51 for (j=0;j<q;j++)
52 {
53 printf("%d ",b[i][j]);
54 }
55 printf("\n");
56 }
57 printf("ab相乘结果为:\n");
58
59 for (i=0;i<m;i++)
60 {
61 while (k<q)
62 {
63 for (j=0;j<q;j++)
64 {
65 sum = a[i][j]*b[j][k]+sum;
66 }
67 printf("%d ",sum);
68 k++;
69 sum=0;
70 }
71 k=0;
72 printf("\n");
73 }
74 }
相关文章
- 谷歌开源Gumbo:纯C语言实现的HTML5解析库
- 【C语言基础】编码规范
- C语言 条件编译详解
- C++:C语言实现HTTP的GET和POST请求
- 《C语言编程初学者指南》一1.5 使用程序语句
- 《嵌入式Linux与物联网软件开发——C语言内核深度解析》一2.4 位运算构建特定二进制数
- 《C语言接口与实现:创建可重用软件的技术》一2.7 习题
- 【C语言】简单实现扫雷游戏
- 基于C语言+MySQL实现(控制台)图书馆借书系统【100010553】
- 基于C语言实现B树存储的图书管理系统【100010523】
- 基于C语言实现(控制台)体育项目管理系统【100010190】
- 基于C语言实现支持 TCP 可靠数据传输实验【100010469】
- 【C语言】从字符串中提取正整数和负整数
- 【C语言】用牛顿迭代(切线)法/二分法求下面方程的根:
- 《C语言编程魔法书:基于C11标准》——1.4 关于GNU规范的语法扩展
- 《数据结构与算法 C语言版》—— 3.3栈与递归实现
- C语言#和##操作符使用方法
- 【数据结构】链队列的C语言实现
- 【数据结构】单链表的C语言实现--万字详解介绍
- C语言实现将矩阵上下翻转(正反解算结果融合时用到)
- C语言实现姿态四元数转旋转矢量
- 不用定时器和汇编语言,只用C语言实现精确无误的延时
- 归并排序(递归)——C语言实现
- 数据结构之---C语言实现线索二叉树
- Python源代码 -- C语言实现面向对象编程(基类&派生类&多态)
- C语言 函数之间的地址值传递
- C语言实现2048小游戏
- C语言递归实现二叉树的先序、中序、后序遍历
- java选择控制语句和循环控制语句和C语言的有什么区别?
- C语言递归实现k的n次方