C语言实现矩阵相乘
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 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律