【发布时间】:2016-09-11 12:36:11
【问题描述】:
我试图创建一个矩阵时间向量程序,但是当我运行程序时,我发现输出有点奇怪
这是我的代码
#include <stdio.h>
main()
{
int i, j, n, a[3][3], b[3], c[3];
n = 3;
printf("Matrix A\n");
for (i = 0; i < n; ++i) {
for (j = 0; j < n; ++j) {
a[i][j] = 10;
printf("%d ", a[i][j]);
}
printf("\n");
}
printf("\nMatrix B\n");
for (i = 0; i < n; ++i) {
b[i] = 5;
printf("%d\n", b[i]);
}
printf("\nA * B\n");
for (i = 0; i < n; ++i) {
for (j = 0; j < n; ++j) {
c[i] += a[j][i] * b[j];
}
}
for (i = 0; i < n; ++i) {
printf("%d\n", c[i]);
}
}
结果应该是 C = {150,150,150}。问题似乎只在 c[0] 和 c[2]
【问题讨论】:
-
c未初始化,因此您最终会在c中得到随机垃圾,并将乘法结果添加到其中。像 `c[3] = {0, 0, 0};` 一样声明它或在循环中初始化它。
标签: c multidimensional-array matrix-multiplication