|

楼主 |
发表于 2021-1-19 11:42:59
|
显示全部楼层
本帖最后由 烂泥化刚 于 2021-1-19 11:45 编辑
这样
我使用的是dev
有问题的代码在《进行矩阵运算(第36行)那一块
这个本可以忽略的问题让我的代码在能运行的基础下一直出错
- #include <stdio.h>
- int main()
- {
- int m, n, p;
- printf("请输入第一个矩阵的尺寸:(M * P)\n");
- scanf("%d * %d", &m, &p);
- printf("请输入第二个矩阵的尺寸:(P * N)\n");
- scanf("%d * %d", &p, &n);
-
- int array[m][p], array2[p][n];
- int result[m][n];
- for(int i = 0; i < m*n; i++)
- {
- *(*result + i) = 0;
- }
-
- printf("请输入第一个矩阵的值:\n");
- for(int i = 0; i < m; i++)//存入第一个矩阵
- {
- for(int j = 0; j < p; j++)
- {
- scanf("%d", &array[i][j]);
- }
- }
- printf("请输入第二个矩阵的值:\n");
- for(int i = 0; i < p; i++)//存入第二个矩阵
- {
- for(int j = 0; j < n; j++)
- {
- scanf("%d", &array2[i][j]);
- }
- }
-
- //进行矩阵的运算
- for(int j = 0; j < m; j++)
- {
- for(int i = 0; i < n; i++)
- {
- for(int a = 0; a < p; a++)
- {
- result[j][i] += array[j][a] * array2[a][i];
- }
- }
- }
- printf("计算结果如下:\n") ;
- for(int a = 0, b, i; a < m|| a < p;a++)//开始打印结果
- {
- for(i = 0; i < 3; i++)
- {
- if(a < m&& i == 0)
- {
- putchar('|');
- for(b = 0; b < p; b++)
- {
- printf(" %d", array[a][b]);
- }
- }
- else if(i == 0)
- {
- putchar(' ');
- for(b = 0; b < p; b++)
- {
- printf(" ");
- }
- }
- else if(a < p&& i ==1)
- {
- putchar('|');
- for(b = 0; b < n; b++)
- {
- printf(" %d", array2[a][b]);
- }
- }
- else if(i == 1)
- {
- putchar(' ');
- for(b = 0; b < n; b++)
- {
- printf(" ");
- }
- }
- else if(a < m&& i ==2)
- {
- putchar('|');
- for(b = 0; b < n; b++)
- {
- printf(" %d", result[a][b]);
- }
- }
- else if(i == 2)
- {
- putchar(' ');
- for(b = 0; b < n; b++)
- {
- printf(" ");
- }
- }
-
-
-
- if(a == 2&& i == 0)
- {
- printf(" | * ");
- }
- else if(a == 2&& i == 1)
- {
- printf(" | = ");
- }
- else if(i == 2)
- {
- printf(" | \n");
- }
- else
- {
- printf(" | ");
- }
- }
- }
-
- return 1;
- }
复制代码 |
|