嗯,这里有一些简单的代码来创建1X的3X3矩阵并将矩阵自身相乘。
我希望看到一个3X3的方阵。
然而,输出与我的预期非常不同。
我希望:
3 3 3
3 3 3
3 3 3
我明白了:
4 3 1530309563
32770 76107779 4
1764799051 32770 1530309579
任何见解?
谢谢,
安键
这是代码:`
int main()
{
const int ROW = 3;
const int COL= 3;
int mat[ROW][COL];
int mul[ROW][COL];
//create a matrix of ones
for (int r=0; r<= ROW-1 ; r++)
{
for (int c=0; c<= COL-1; c++)
{
mat[r][c]=1;
}
}
for (int r=0; r<= ROW -1; r++)
{
for (int c=0; c<= COL -1; c++)
{
for(int i=0; i<=COL-1; i++)
{
mul[r][c]+=mat[r][i]*mat[i][c];
}
}
}
for (int r=0; r<= ROW -1 ; r++)
{
for (int c=0; c<= COL-1; c++)
{
printf("%d ",mul[r][c]);
}
printf("\n");
}
}
`
答案 0 :(得分:3)
mul
值未初始化,因此其值是意外的。
尝试在初始化循环中添加此行:
mul[r][c] = 0;
答案 1 :(得分:2)
您从未初始化mul
数组,因此mul[r][c]+=
会添加垃圾。
要解决此问题,请mat[r][c] = 1;
放mul[r][c] = 0;
。