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 }
复制代码

 

posted @   ascertain  阅读(1614)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示