矩阵相乘

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 
 4 int m, n, p, q;
 5 int a[10][10], b[10][10], c[10][10];
 6 int i, j, k;
 7 
 8 void initial()
 9 {
10     
11     printf("请输入第一个矩阵的行数和列数:");
12     scanf("%d%d", &m, &n);
13     printf("请输入第二个矩阵的行数和列数:");
14     scanf("%d%d", &p, &q);
15     
16     if (n != p)
17     {
18         printf("矩阵无法相乘");
19         exit(0);
20     }
21     printf("请输入第一个矩阵:");
22     for (i = 0; i < m; i++)
23     {
24         for (j = 0; j < n; j++)
25         {
26             scanf("%d\n", &a[i][j]);
27         }
28     }
29     printf("请输入第二个矩阵:");
30     for (i = 0; i < p; i++)
31     {
32         for (j = 0; j < q; j++)
33         {
34             scanf("%d\n", &b[i][j]);
35         }
36     }
37 }
38 
39 void calc()
40 {
41     for (i = 0; i < m; i++)
42     {
43         for (j = 0; j < q; j++)
44         {
45             c[i][j] = 0;
46             for (k = 0; k < n; k++)
47             {
48                 c[i][j] += a[i][k] * b[k][j];
49             }
50         }
51     }
52 }
53 
54 void print()
55 {    
56     for (i = 0; i < m; i++)
57     {
58         for (j = 0; j < q; j++)
59         {
60             printf("%d ", c[i][j]);
61         }
62         printf("\n");
63     }
64 }
65 
66 int main()
67 {
68     initial();
69     calc();
70     print();
71     return 0;
72 }

 

posted @ 2016-05-16 15:33  新生代黑马  阅读(150)  评论(0编辑  收藏  举报