欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C语言 矩阵的转置及矩阵的乘法

程序员文章站 2022-07-09 17:59:06
//凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1.矩阵的转置 结果为: 2.矩阵的乘法运算 结果为: ......

 //凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/

1.矩阵的转置

 1 #include<stdio.h>
 2 #define N 2
 3 #define M 3
 4 void main(){
 5     int i,j,a[N][M],b[M][N];
 6     //从键盘输入矩阵a
 7     for(i=0;i<N;i++){
 8         for(j=0;j<M;j++){
 9             printf("a[%d][%d]= ",i,j);
10             scanf("%d",&a[i][j]);
11         }
12     }
13     //输出矩阵a
14     printf("Array a:\n");
15     for(i=0;i<N;i++){
16         for(j=0;j<M;j++){
17             printf("%5d",a[i][j]);
18             b[j][i]=a[i][j];
19         }
20         printf("\n");
21     }
22     //输出矩阵b
23     printf("Array b:\n");
24     for(i=0;i<M;i++){
25         for(j=0;j<N;j++){
26             printf("%5d",b[i][j]);
27         }
28         printf("\n");
29     }
30 
31 }

结果为:

C语言 矩阵的转置及矩阵的乘法

 

2.矩阵的乘法运算

 1 #include<stdio.h>
 2 #define M 10
 3 void main(){
 4     long int a[M][M], b[M][M], c[M][M]={0};
 5     int m, n, p, i, j, k;
 6 
 7     printf("Please input 3 numbers:\n");
 8     scanf("%d %d %d",&m, &n, &p);
 9 
10     printf("Please input array A (%d * %d)\n", m, n);
11     for(i=0;i<m;i++){
12         for(j=0;j<n;j++){
13             scanf("%ld", &a[i][j]);
14         }
15     }
16 
17     printf("Plaese input array B (%d * %d)\n", n, p);
18     for(i=0;i<n;i++){
19         for(j=0;j<p;j++){
20             scanf("%ld", &b[i][j]);
21         }
22     }
23     //A*B=C
24     for(i=0;i<m;i++){
25         for(j=0;j<p;j++){
26             for(k=0;k<n;k++){
27                 c[i][j]=c[i][j]+a[i][k]*b[k][j];
28             }
29         }
30     }
31 
32     printf("A*B= \n");
33     for(i=0;i<m;i++){
34         for(j=0;j<p;j++){
35             printf("%3ld",c[i][j]);
36         }
37         printf("\n");
38     }
39 
40 }

结果为:

C语言 矩阵的转置及矩阵的乘法